diff options
Diffstat (limited to 'src/com/android/settings')
-rw-r--r-- | src/com/android/settings/SettingsActivity.java | 17 | ||||
-rw-r--r-- | src/com/android/settings/dashboard/DashboardSummary.java | 23 |
2 files changed, 23 insertions, 17 deletions
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index f7e5dcd46..a4aa60fed 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -329,7 +329,9 @@ public class SettingsActivity extends Activity public void handleMessage(Message msg) { switch (msg.what) { case MSG_BUILD_CATEGORIES: { - buildDashboardCategories(mCategories); + if(mNeedToRebuildCategories) { + buildDashboardCategories(mCategories); + } } break; } } @@ -346,7 +348,7 @@ public class SettingsActivity extends Activity } public List<DashboardCategory> getDashboardCategories() { - if (mNeedToRebuildCategories) { + if (mNeedToRebuildCategories || mCategories.size() == 0) { buildDashboardCategories(mCategories); mNeedToRebuildCategories = false; } @@ -497,16 +499,11 @@ public class SettingsActivity extends Activity switchToFragment( initialFragmentName, initialArguments, true, false, mInitialTitle, false); } else { - // We need to build the Categories in all cases - buildDashboardCategories(mCategories); - // No UP if we are displaying the main Dashboard mDisplayHomeAsUpEnabled = false; - if (mCategories.size() > 0) { - mInitialTitle = getText(R.string.dashboard_title); - switchToFragment(DashboardSummary.class.getName(), null, false, false, - mInitialTitle, false); - } + mInitialTitle = getText(R.string.dashboard_title); + switchToFragment(DashboardSummary.class.getName(), null, false, false, + mInitialTitle, false); } } diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java index faafad12e..4aee7be8c 100644 --- a/src/com/android/settings/dashboard/DashboardSummary.java +++ b/src/com/android/settings/dashboard/DashboardSummary.java @@ -27,6 +27,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -48,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; @@ -79,6 +80,12 @@ 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(); mDashboard.removeAllViews(); @@ -116,6 +123,8 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen // Add the category mDashboard.addView(categoryView); } + long delta = System.currentTimeMillis() - start; + Log.d(LOG_TAG, "rebuildUI took: " + delta + " ms"); } @Override @@ -127,7 +136,7 @@ public class DashboardSummary extends Fragment implements OnAccountsUpdateListen mAccountListenerAdded = true; } - rebuildCategories(); + sendRebuildUI(); } @Override @@ -172,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); } } @@ -182,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(); } } |