From 01b07fed5b5c93cbffc17a5c0c2967eed93acfd2 Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Sun, 17 Nov 2013 06:19:50 +0000 Subject: [PATCH] Simplified callback system --- .../router/fragment/AddressbookFragment.java | 40 ++++++------------- .../router/fragment/I2PFragmentBase.java | 11 ++--- .../router/fragment/NetDbListFragment.java | 24 +++-------- .../fragment/NetDbSummaryPagerFragment.java | 24 +++++------ 4 files changed, 37 insertions(+), 62 deletions(-) diff --git a/src/net/i2p/android/router/fragment/AddressbookFragment.java b/src/net/i2p/android/router/fragment/AddressbookFragment.java index 130c0621b..2a14eaf95 100644 --- a/src/net/i2p/android/router/fragment/AddressbookFragment.java +++ b/src/net/i2p/android/router/fragment/AddressbookFragment.java @@ -40,7 +40,6 @@ public class AddressbookFragment extends ListFragment implements private static final int PRIVATE_LOADER_ID = 2; private boolean mOnActivityCreated; - private boolean mOnRouterBind; RouterContextProvider mRouterContextProvider; OnAddressSelectedListener mCallback; private AddressEntryAdapter mAdapter; @@ -94,9 +93,7 @@ public class AddressbookFragment extends ListFragment implements setListAdapter(mAdapter); mOnActivityCreated = true; - // Check getRouterContext() in case this was not the - // active Fragment when onRouterBind() was called. - if (mOnRouterBind || getRouterContext() != null) + if (getRouterContext() != null) onRouterConnectionReady(); else setEmptyText(getResources().getString( @@ -104,32 +101,22 @@ public class AddressbookFragment extends ListFragment implements } public void onRouterConnectionReady() { - LoaderManager lm = getLoaderManager(); if (mAddWizardData != null) { - if (getRouterContext() != null) { - // Save the new entry - Bundle entryData = mAddWizardData.getExtras().getBundle(ADD_WIZARD_DATA); - NamingService ns = NamingServiceUtil.getNamingService(getRouterContext(), mBook); - boolean success = NamingServiceUtil.addFromWizard(getActivity(), ns, entryData, false); - if (success) { - // Reload the list - setListShown(false); - getLoaderManager().restartLoader(PRIVATE_LOADER_ID, null, this); - } + // Save the new entry + Bundle entryData = mAddWizardData.getExtras().getBundle(ADD_WIZARD_DATA); + NamingService ns = NamingServiceUtil.getNamingService(getRouterContext(), mBook); + boolean success = NamingServiceUtil.addFromWizard(getActivity(), ns, entryData, false); + if (success) { + // Reload the list + setListShown(false); + getLoaderManager().restartLoader(PRIVATE_LOADER_ID, null, this); } } else { - // If the Router is running, or there is an existing Loader - if (getRouterContext() != null || lm.getLoader(PRIVATE_BOOK.equals(mBook) ? - PRIVATE_LOADER_ID : ROUTER_LOADER_ID) != null) { - setEmptyText("No hosts in address book " + mBook); + setEmptyText("No hosts in address book " + mBook); - setListShown(false); - lm.initLoader(PRIVATE_BOOK.equals(mBook) ? - PRIVATE_LOADER_ID : ROUTER_LOADER_ID, null, this); - } else { - setEmptyText(getResources().getString( - R.string.router_not_running)); - } + setListShown(false); + getLoaderManager().initLoader(PRIVATE_BOOK.equals(mBook) ? + PRIVATE_LOADER_ID : ROUTER_LOADER_ID, null, this); } } @@ -195,7 +182,6 @@ public class AddressbookFragment extends ListFragment implements // I2PFragmentBase.RouterContextUser public void onRouterBind() { - mOnRouterBind = true; if (mOnActivityCreated) onRouterConnectionReady(); } diff --git a/src/net/i2p/android/router/fragment/I2PFragmentBase.java b/src/net/i2p/android/router/fragment/I2PFragmentBase.java index 3af2454c4..e9aea55d2 100644 --- a/src/net/i2p/android/router/fragment/I2PFragmentBase.java +++ b/src/net/i2p/android/router/fragment/I2PFragmentBase.java @@ -14,7 +14,6 @@ import android.support.v4.app.Fragment; public class I2PFragmentBase extends Fragment { private boolean mOnActivityCreated; - private boolean mOnRouterBind; RouterContextProvider mCallback; protected static final String PREF_INSTALLED_VERSION = "app.version"; @@ -47,14 +46,13 @@ public class I2PFragmentBase extends Fragment { public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mOnActivityCreated = true; - // Check getRouterContext() in case this was not the - // active Fragment when onRouterBind() was called. - if (mOnRouterBind || getRouterContext() != null) + if (getRouterContext() != null) onRouterConnectionReady(); + else + onRouterConnectionNotReady(); } public void onRouterBind() { - mOnRouterBind = true; if (mOnActivityCreated) onRouterConnectionReady(); } @@ -62,6 +60,9 @@ public class I2PFragmentBase extends Fragment { /** callback from I2PFragmentBase, override as necessary */ public void onRouterConnectionReady() {} + /** callback from I2PFragmentBase, override as necessary */ + public void onRouterConnectionNotReady() {} + protected RouterContext getRouterContext() { return mCallback.getRouterContext(); } diff --git a/src/net/i2p/android/router/fragment/NetDbListFragment.java b/src/net/i2p/android/router/fragment/NetDbListFragment.java index 80ad07af6..293bd8be4 100644 --- a/src/net/i2p/android/router/fragment/NetDbListFragment.java +++ b/src/net/i2p/android/router/fragment/NetDbListFragment.java @@ -35,7 +35,6 @@ public class NetDbListFragment extends ListFragment implements private static final String STATE_ACTIVATED_POSITION = "activated_position"; private boolean mOnActivityCreated; - private boolean mOnRouterBind; RouterContextProvider mRouterContextProvider; OnEntrySelectedListener mEntrySelectedCallback; private NetDbEntryAdapter mAdapter; @@ -108,9 +107,7 @@ public class NetDbListFragment extends ListFragment implements setListAdapter(mAdapter); mOnActivityCreated = true; - // Check getRouterContext() in case this was not the - // active Fragment when onRouterBind() was called. - if (mOnRouterBind || getRouterContext() != null) + if (getRouterContext() != null) onRouterConnectionReady(); else setEmptyText(getResources().getString( @@ -118,21 +115,13 @@ public class NetDbListFragment extends ListFragment implements } public void onRouterConnectionReady() { - LoaderManager lm = getLoaderManager(); - // If the Router is running, or there is an existing Loader - if (getRouterContext() != null || lm.getLoader(mRouters ? - ROUTER_LOADER_ID : LEASESET_LOADER_ID) != null) { - setEmptyText(getResources().getString((mRouters ? - R.string.netdb_routers_empty : + setEmptyText(getResources().getString((mRouters ? + R.string.netdb_routers_empty : R.string.netdb_leases_empty))); - setListShown(false); - lm.initLoader(mRouters ? ROUTER_LOADER_ID - : LEASESET_LOADER_ID, null, this); - } else { - setEmptyText(getResources().getString( - R.string.router_not_running)); - } + setListShown(false); + getLoaderManager().initLoader(mRouters ? ROUTER_LOADER_ID + : LEASESET_LOADER_ID, null, this); } @Override @@ -199,7 +188,6 @@ public class NetDbListFragment extends ListFragment implements // I2PFragmentBase.RouterContextUser public void onRouterBind() { - mOnRouterBind = true; if (mOnActivityCreated) onRouterConnectionReady(); } diff --git a/src/net/i2p/android/router/fragment/NetDbSummaryPagerFragment.java b/src/net/i2p/android/router/fragment/NetDbSummaryPagerFragment.java index 2e873e731..01c13e992 100644 --- a/src/net/i2p/android/router/fragment/NetDbSummaryPagerFragment.java +++ b/src/net/i2p/android/router/fragment/NetDbSummaryPagerFragment.java @@ -58,14 +58,12 @@ public class NetDbSummaryPagerFragment extends I2PFragmentBase implements @Override public void onRouterConnectionReady() { - LoaderManager lm = getLoaderManager(); - // If the Router is running, or there is an existing Loader - if (getRouterContext() != null || lm.getLoader(0) != null) { - lm.initLoader(0, null, this); - } else { - // Router is not running or is not bound yet. - Util.i("Router not running or not bound to NetDbSummaryPagerFragment"); - } + getLoaderManager().initLoader(0, null, this); + } + + @Override + public void onRouterConnectionNotReady() { + Util.i("Router not running or not bound to NetDbSummaryPagerFragment"); } @Override @@ -78,10 +76,12 @@ public class NetDbSummaryPagerFragment extends I2PFragmentBase implements // Handle presses on the action bar items switch (item.getItemId()) { case R.id.action_refresh: - Util.i("Refresh called, restarting Loader"); - mNetDbPagerAdapter.setData(null); - mViewPager.invalidate(); - getLoaderManager().restartLoader(0, null, this); + if (getRouterContext() != null) { + Util.i("Refresh called, restarting Loader"); + mNetDbPagerAdapter.setData(null); + mViewPager.invalidate(); + getLoaderManager().restartLoader(0, null, this); + } return true; default: return super.onOptionsItemSelected(item); -- GitLab