diff --git a/src/com/android/settings/applications/ApplicationsState.java b/src/com/android/settings/applications/ApplicationsState.java index c5124c61182..6d8f8677282 100644 --- a/src/com/android/settings/applications/ApplicationsState.java +++ b/src/com/android/settings/applications/ApplicationsState.java @@ -802,10 +802,7 @@ public class ApplicationsState { if (mInterestingConfigChanges.applyNewConfig(mContext.getResources())) { // If an interesting part of the configuration has changed, we // should completely reload the app entries. - for (int i = 0; i < mEntriesMap.size(); i++) { - mEntriesMap.valueAt(i).clear(); - } - mAppEntries.clear(); + clearEntries(); } else { for (int i=0; i mApplications.size()) { + // There are less apps now, some must have been uninstalled. + clearEntries(); + } mCurComputingSizePkg = null; if (!mBackgroundHandler.hasMessages(BackgroundHandler.MSG_LOAD_ENTRIES)) { mBackgroundHandler.sendEmptyMessage(BackgroundHandler.MSG_LOAD_ENTRIES); } } + private void clearEntries() { + for (int i = 0; i < mEntriesMap.size(); i++) { + mEntriesMap.valueAt(i).clear(); + } + mAppEntries.clear(); + } + public boolean haveDisabledApps() { return mHaveDisabledApps; } @@ -1179,7 +1187,7 @@ public class ApplicationsState { int numDone = 0; synchronized (mEntriesMap) { if (DEBUG_LOCKING) Log.v(TAG, "MSG_LOAD_ENTRIES acquired lock"); - for (int i=0; i