DO NOT MERGE: Fix bug #15161058 Stability: ISE in Settings:Fragment DashboardSummary{588de71} not attached to Activity

- prevent rebuilding the UI until the fragment got attached

Change-Id: I6d5fcbce2581f3fc9900f1ca4fc8178ee959061e
(cherry picked from commit 53d76860a53c1463d182d4f3d28ce8e9f48454f3)
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 73dcd17..4aee7be 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -49,12 +49,12 @@
     private AuthenticatorHelper mAuthHelper;
     private boolean mAccountListenerAdded;
 
-    private static final int MSG_BUILD_CATEGORIES = 1;
+    private static final int MSG_REBUILD_UI = 1;
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
-                case MSG_BUILD_CATEGORIES: {
+                case MSG_REBUILD_UI: {
                     final Context context = getActivity();
                     rebuildUI(context);
                 } break;
@@ -80,6 +80,11 @@
     }
 
     private void rebuildUI(Context context) {
+        if (!isAdded()) {
+            Log.w(LOG_TAG, "Cannot build the DashboardSummary UI yet as the Fragment is not added");
+            return;
+        }
+
         long start = System.currentTimeMillis();
         final Resources res = getResources();
 
@@ -131,7 +136,7 @@
             mAccountListenerAdded = true;
         }
 
-        rebuildCategories();
+        sendRebuildUI();
     }
 
     @Override
@@ -176,9 +181,9 @@
         }
     }
 
-    private void rebuildCategories() {
-        if (!mHandler.hasMessages(MSG_BUILD_CATEGORIES)) {
-            mHandler.sendEmptyMessage(MSG_BUILD_CATEGORIES);
+    private void sendRebuildUI() {
+        if (!mHandler.hasMessages(MSG_REBUILD_UI)) {
+            mHandler.sendEmptyMessage(MSG_REBUILD_UI);
         }
     }
 
@@ -186,6 +191,6 @@
     public void onAccountsUpdated(Account[] accounts) {
         final SettingsActivity sa = (SettingsActivity) getActivity();
         sa.setNeedToRebuildCategories(true);
-        rebuildCategories();
+        sendRebuildUI();
     }
 }