From d2385166cb81884f012647e61cfd575121c65170 Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Sat, 11 Jan 2014 22:30:12 +0000 Subject: [PATCH] Fixed race between router binding and onCreateOptionsMenu() --- .../addressbook/AddressbookActivity.java | 3 -- .../addressbook/AddressbookFragment.java | 32 +++++++++++++------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/net/i2p/android/router/addressbook/AddressbookActivity.java b/src/net/i2p/android/router/addressbook/AddressbookActivity.java index 181a00e9b..8a6050e30 100644 --- a/src/net/i2p/android/router/addressbook/AddressbookActivity.java +++ b/src/net/i2p/android/router/addressbook/AddressbookActivity.java @@ -2,9 +2,6 @@ package net.i2p.android.router.addressbook; import net.i2p.android.router.I2PActivityBase; import net.i2p.android.router.R; -import net.i2p.android.router.I2PActivityBase.TabListener; -import net.i2p.android.router.web.WebActivity; -import net.i2p.android.router.web.WebFragment; import android.app.Activity; import android.app.SearchManager; import android.content.Context; diff --git a/src/net/i2p/android/router/addressbook/AddressbookFragment.java b/src/net/i2p/android/router/addressbook/AddressbookFragment.java index 19ef0e598..b0dbf34dd 100644 --- a/src/net/i2p/android/router/addressbook/AddressbookFragment.java +++ b/src/net/i2p/android/router/addressbook/AddressbookFragment.java @@ -105,6 +105,11 @@ public class AddressbookFragment extends ListFragment implements } public void onRouterConnectionReady() { + // Show actions + mSearchAddressbook.setVisible(true); + if (mAddToAddressbook != null) + mAddToAddressbook.setVisible(false); + if (mAddWizardData != null) { // Save the new entry Bundle entryData = mAddWizardData.getExtras().getBundle(ADD_WIZARD_DATA); @@ -130,24 +135,33 @@ public class AddressbookFragment extends ListFragment implements mCallback.onAddressSelected(host); } + private MenuItem mSearchAddressbook; + private MenuItem mAddToAddressbook; + @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.fragment_addressbook_actions, menu); + inflater.inflate(R.menu.fragment_addressbook_actions, menu); + + mSearchAddressbook = menu.findItem(R.id.action_search_addressbook); + mAddToAddressbook = menu.findItem(R.id.action_add_to_addressbook); - // Only allow adding to private book - if (!PRIVATE_BOOK.equals(mBook)) - menu.findItem(R.id.action_add_to_addressbook).setVisible(false); + // Hide until needed + if (getRouterContext() == null) { + mSearchAddressbook.setVisible(false); + mAddToAddressbook.setVisible(false); + } - if (getRouterContext() == null) { - menu.findItem(R.id.action_search_addressbook).setVisible(false); - menu.findItem(R.id.action_add_to_addressbook).setVisible(false); - } + // Only allow adding to private book + if (!PRIVATE_BOOK.equals(mBook)) { + mAddToAddressbook.setVisible(false); + mAddToAddressbook = null; + } } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items - + switch (item.getItemId()) { case R.id.action_add_to_addressbook: Intent wi = new Intent(getActivity(), AddressbookAddWizardActivity.class); -- GitLab