diff --git a/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java b/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java index 68bc302f1..1bc71957a 100644 --- a/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java +++ b/src/org/geometerplus/android/fbreader/network/NetworkCatalogActions.java @@ -309,9 +309,7 @@ class NetworkCatalogActions extends NetworkTreeActions { @Override public void afterUpdateItems() { - if (NetworkView.Instance().isInitialized()) { - NetworkView.Instance().fireModelChangedAsync(); - } + NetworkView.Instance().fireModelChangedAsync(); } @Override @@ -331,15 +329,10 @@ class NetworkCatalogActions extends NetworkTreeActions { library.invalidateVisibility(); library.synchronize(); } - if (NetworkView.Instance().isInitialized()) { - NetworkView.Instance().fireModelChangedAsync(); - } + NetworkView.Instance().fireModelChangedAsync(); } private void afterUpdateCatalog(String errorMessage, boolean childrenEmpty) { - if (!NetworkView.Instance().isInitialized()) { - return; - } final NetworkCatalogActivity activity = NetworkCatalogActivity.getByTree(myTree); if (activity == null) { return; @@ -464,23 +457,20 @@ class NetworkCatalogActions extends NetworkTreeActions { ); } - private void doSignOut(NetworkBaseActivity activity, NetworkCatalogTree tree) { - final Handler handler = new Handler() { - public void handleMessage(Message message) { - final NetworkLibrary library = NetworkLibrary.Instance(); - library.invalidateVisibility(); - library.synchronize(); - if (NetworkView.Instance().isInitialized()) { - NetworkView.Instance().fireModelChanged(); - } - } - }; + private void doSignOut(final NetworkBaseActivity activity, NetworkCatalogTree tree) { final NetworkAuthenticationManager mgr = tree.Item.Link.authenticationManager(); final Runnable runnable = new Runnable() { public void run() { if (mgr.mayBeAuthorised(false)) { mgr.logOut(); - handler.sendEmptyMessage(0); + activity.runOnUiThread(new Runnable() { + public void run() { + final NetworkLibrary library = NetworkLibrary.Instance(); + library.invalidateVisibility(); + library.synchronize(); + NetworkView.Instance().fireModelChanged(); + } + }); } } }; diff --git a/src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java b/src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java index 767522ad5..8a8e887d9 100644 --- a/src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java +++ b/src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java @@ -74,9 +74,7 @@ public class NetworkSearchActivity extends Activity { @Override public void afterUpdateItems() { myTree.updateSubTrees(); - if (NetworkView.Instance().isInitialized()) { - NetworkView.Instance().fireModelChangedAsync(); - } + NetworkView.Instance().fireModelChangedAsync(); } @Override @@ -88,9 +86,7 @@ public class NetworkSearchActivity extends Activity { myTree.updateSubTrees(); afterUpdateCatalog(errorMessage, myTree.getSearchResult().isEmpty()); } - if (NetworkView.Instance().isInitialized()) { - NetworkView.Instance().fireModelChangedAsync(); - } + NetworkView.Instance().fireModelChangedAsync(); } private void afterUpdateCatalog(String errorMessage, boolean childrenEmpty) { diff --git a/src/org/geometerplus/android/fbreader/network/Util.java b/src/org/geometerplus/android/fbreader/network/Util.java index dae3df613..c05bb4021 100644 --- a/src/org/geometerplus/android/fbreader/network/Util.java +++ b/src/org/geometerplus/android/fbreader/network/Util.java @@ -76,7 +76,7 @@ abstract class Util implements UserRegistrationConstants { } } - private static final Map myAfterRegisrationMap = + private static final Map ourAfterRegisrationMap = new HashMap(); static void runAuthenticationDialog(Activity activity, INetworkLink link, String error, Runnable onSuccess) { @@ -90,14 +90,14 @@ abstract class Util implements UserRegistrationConstants { intent.putExtra(AuthenticationActivity.SCHEME_KEY, "https"); intent.putExtra(AuthenticationActivity.ERROR_KEY, error); if (onSuccess != null) { - myAfterRegisrationMap.put(activity, onSuccess); + ourAfterRegisrationMap.put(activity, onSuccess); } activity.startActivityForResult(intent, NetworkBaseActivity.CUSTOM_AUTHENTICATION_CODE); } static void processCustomAuthentication(final Activity activity, final INetworkLink link, int resultCode, Intent data) { - final Runnable onSuccess = myAfterRegisrationMap.get(activity); - myAfterRegisrationMap.remove(activity); + final Runnable onSuccess = ourAfterRegisrationMap.get(activity); + ourAfterRegisrationMap.remove(activity); switch (resultCode) { case AuthenticationActivity.RESULT_CANCELED: UIUtil.wait(