diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2014-05-22 11:27:43 -0700 |
---|---|---|
committer | Dave Langemak <dlangemak@google.com> | 2014-05-27 21:01:29 +0000 |
commit | 9c3c57f7aeced1dad6f7aca5552d01f696f8ea26 (patch) | |
tree | 3b219b7b1b7af71be2492bfb5bec775325999401 /src/com/android/settings/dashboard | |
parent | 42c4b0abe5578a7812844ad5205ffc3b87cf3072 (diff) | |
download | packages_apps_Settings-9c3c57f7aeced1dad6f7aca5552d01f696f8ea26.zip packages_apps_Settings-9c3c57f7aeced1dad6f7aca5552d01f696f8ea26.tar.gz packages_apps_Settings-9c3c57f7aeced1dad6f7aca5552d01f696f8ea26.tar.bz2 |
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)
Diffstat (limited to 'src/com/android/settings/dashboard')
-rw-r--r-- | src/com/android/settings/dashboard/DashboardSummary.java | 19 |
1 files changed, 12 insertions, 7 deletions
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 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen 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 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen } 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 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen mAccountListenerAdded = true; } - rebuildCategories(); + sendRebuildUI(); } @Override @@ -176,9 +181,9 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen } } - 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 class DashboardSummary extends Fragment implements OnAccountsUpdateListen public void onAccountsUpdated(Account[] accounts) { final SettingsActivity sa = (SettingsActivity) getActivity(); sa.setNeedToRebuildCategories(true); - rebuildCategories(); + sendRebuildUI(); } } |