diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index edd4088a27f..c1f45746599 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -768,7 +768,7 @@ public class ManageApplications extends InstrumentedFragment int i = item.getItemId(); if (i == R.id.sort_order_alpha || i == R.id.sort_order_size) { if (mApplications != null) { - mApplications.rebuild(menuId); + mApplications.rebuild(menuId, false); } } else if (i == R.id.show_system || i == R.id.hide_system) { mShowSystem = !mShowSystem; @@ -1097,13 +1097,13 @@ public class ManageApplications extends InstrumentedFragment // Notification filters require resorting the list if (mManageApplications.mListType == LIST_TYPE_NOTIFICATION) { if (FILTER_APPS_FREQUENT == appFilter.getFilterType()) { - rebuild(R.id.sort_order_frequent_notification); + rebuild(R.id.sort_order_frequent_notification, false); } else if (FILTER_APPS_RECENT == appFilter.getFilterType()) { - rebuild(R.id.sort_order_recent_notification); + rebuild(R.id.sort_order_recent_notification, false); } else if (FILTER_APPS_BLOCKED == appFilter.getFilterType()) { - rebuild(R.id.sort_order_alpha); + rebuild(R.id.sort_order_alpha, true); } else { - rebuild(R.id.sort_order_alpha); + rebuild(R.id.sort_order_alpha, true); } } else { rebuild(); @@ -1121,7 +1121,7 @@ public class ManageApplications extends InstrumentedFragment } rebuild(); } else { - rebuild(sort); + rebuild(sort, false); } } @@ -1149,8 +1149,8 @@ public class ManageApplications extends InstrumentedFragment } } - public void rebuild(int sort) { - if (sort == mLastSortMode) { + public void rebuild(int sort, boolean force) { + if (sort == mLastSortMode && !force) { return; } mManageApplications.mSortOrder = sort; diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java index 25eca7adb22..da17f1143bb 100644 --- a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java +++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java @@ -455,10 +455,13 @@ public class ManageApplicationsTest { ManageApplications.ApplicationsAdapter adapter = new ManageApplications.ApplicationsAdapter( mState, mFragment, mock(AppFilterItem.class), mock(Bundle.class)); - adapter.rebuild(mSortRecent.getItemId()); + adapter.rebuild(mSortRecent.getItemId(), false); assertThat(mFragment.mSortOrder).isEqualTo(mSortRecent.getItemId()); - adapter.rebuild(mSortFrequent.getItemId()); + adapter.rebuild(mSortFrequent.getItemId(), false); + assertThat(mFragment.mSortOrder).isEqualTo(mSortFrequent.getItemId()); + + adapter.rebuild(mSortFrequent.getItemId(), true); assertThat(mFragment.mSortOrder).isEqualTo(mSortFrequent.getItemId()); }