From 075a2963e89aa1f4ea6b36ab4e1ca884730f1c96 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Fri, 9 May 2014 18:36:34 -0700 Subject: [PATCH] Fix bug #14399525 settings crash on opening login error notification - check if the account istener has been previously added or not Change-Id: Icfd111a406507ac520a396e44710a9d882f2ae4d --- .../android/settings/dashboard/DashboardSummary.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java index b04fe9af362..0f3d907086a 100644 --- a/src/com/android/settings/dashboard/DashboardSummary.java +++ b/src/com/android/settings/dashboard/DashboardSummary.java @@ -46,6 +46,7 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen private ViewGroup mContainer; private ViewGroup mDashboard; private AuthenticatorHelper mAuthHelper; + private boolean mAccountListenerAdded; private static final int MSG_BUILD_CATEGORIES = 1; private Handler mHandler = new Handler() { @@ -123,14 +124,20 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen public void onStart() { super.onStart(); - AccountManager.get(getActivity()).addOnAccountsUpdatedListener(this, null, false); + if (!mAccountListenerAdded) { + AccountManager.get(getActivity()).addOnAccountsUpdatedListener(this, null, false); + mAccountListenerAdded = true; + } } @Override public void onStop() { super.onStop(); - AccountManager.get(getActivity()).removeOnAccountsUpdatedListener(this); + if (mAccountListenerAdded) { + AccountManager.get(getActivity()).removeOnAccountsUpdatedListener(this); + mAccountListenerAdded = false; + } } private void updateTileView(Context context, Resources res, DashboardTile tile,