Merge "Close account settings if there's no account to show" into lmp-mr1-dev
diff --git a/src/com/android/settings/accounts/ManageAccountsSettings.java b/src/com/android/settings/accounts/ManageAccountsSettings.java
index 074176b..2d8b70e 100644
--- a/src/com/android/settings/accounts/ManageAccountsSettings.java
+++ b/src/com/android/settings/accounts/ManageAccountsSettings.java
@@ -99,8 +99,8 @@
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
+    public void onResume() {
+        super.onResume();
         mAuthenticatorHelper.listenToAccountUpdates();
         updateAuthDescriptions();
         showAccountsIfNeeded();
@@ -134,10 +134,15 @@
     }
 
     @Override
+    public void onPause() {
+        super.onPause();
+        mAuthenticatorHelper.stopListeningToAccountUpdates();
+    }
+
+    @Override
     public void onStop() {
         super.onStop();
         final Activity activity = getActivity();
-        mAuthenticatorHelper.stopListeningToAccountUpdates();
         activity.getActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM);
         activity.getActionBar().setCustomView(null);
     }
@@ -231,7 +236,7 @@
 
     private void showSyncState() {
         // Catch any delayed delivery of update messages
-        if (getActivity() == null) return;
+        if (getActivity() == null || getActivity().isFinishing()) return;
 
         final int userId = mUserHandle.getIdentifier();
 
@@ -377,10 +382,8 @@
         if (mAccountType != null && mFirstAccount != null) {
             addAuthenticatorSettings();
         } else {
-            // There's no account, reset to top-level of settings
-            Intent settingsTop = new Intent(android.provider.Settings.ACTION_SETTINGS);
-            settingsTop.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            getActivity().startActivity(settingsTop);
+            // There's no account, close activity
+            finish();
         }
     }