Update mSortOrder when changed to frequent

Update mSortOrder so when the activity is resumed, the
apps are sorted how the user wants

Test: make ROBOTEST_FILTER=ManageApplicationsTest RunSettingsRoboTests
Change-Id: I422846aada29ee254996b2e94da27af7ed935a0b
Fixes: 77691626
This commit is contained in:
Beverly
2018-04-10 16:29:40 -04:00
parent dbffb1812d
commit 50f641be29
2 changed files with 24 additions and 3 deletions

View File

@@ -176,7 +176,8 @@ public class ManageApplications extends InstrumentedFragment
private static final int NO_USER_SPECIFIED = -1; private static final int NO_USER_SPECIFIED = -1;
// sort order // sort order
private int mSortOrder = R.id.sort_order_alpha; @VisibleForTesting
int mSortOrder = R.id.sort_order_alpha;
// whether showing system apps. // whether showing system apps.
private boolean mShowSystem; private boolean mShowSystem;
@@ -649,9 +650,8 @@ public class ManageApplications extends InstrumentedFragment
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.sort_order_alpha: case R.id.sort_order_alpha:
case R.id.sort_order_size: case R.id.sort_order_size:
mSortOrder = menuId;
if (mApplications != null) { if (mApplications != null) {
mApplications.rebuild(mSortOrder); mApplications.rebuild(menuId);
} }
break; break;
case R.id.show_system: case R.id.show_system:
@@ -712,6 +712,7 @@ public class ManageApplications extends InstrumentedFragment
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mFilter = mFilterAdapter.getFilter(position); mFilter = mFilterAdapter.getFilter(position);
mApplications.setFilter(mFilter); mApplications.setFilter(mFilter);
if (DEBUG) Log.d(TAG, "Selecting filter " + mFilter); if (DEBUG) Log.d(TAG, "Selecting filter " + mFilter);
} }
@@ -986,6 +987,7 @@ public class ManageApplications extends InstrumentedFragment
if (sort == mLastSortMode) { if (sort == mLastSortMode) {
return; return;
} }
mManageApplications.mSortOrder = sort;
mLastSortMode = sort; mLastSortMode = sort;
rebuild(); rebuild();
} }

View File

@@ -23,6 +23,8 @@ import static com.android.settings.applications.manageapplications.ManageApplica
import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_NOTIFICATION; import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_NOTIFICATION;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static junit.framework.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyInt;
@@ -303,6 +305,23 @@ public class ManageApplicationsTest {
verify(holder, never()).updateSwitch(any(), anyBoolean(), anyBoolean()); verify(holder, never()).updateSwitch(any(), anyBoolean(), anyBoolean());
} }
@Test
public void sortOrderSavedOnRebuild() {
ManageApplications manageApplications = mock(ManageApplications.class);
manageApplications.mListType = LIST_TYPE_NOTIFICATION;
manageApplications.mSortOrder = -1;
ManageApplications.ApplicationsAdapter adapter =
new ManageApplications.ApplicationsAdapter(mState,
manageApplications, mock(AppFilterItem.class),
mock(Bundle.class));
adapter.rebuild(mSortRecent.getItemId());
assertThat(manageApplications.mSortOrder).isEqualTo(mSortRecent.getItemId());
adapter.rebuild(mSortFrequent.getItemId());
assertThat(manageApplications.mSortOrder).isEqualTo(mSortFrequent.getItemId());
}
private void setUpOptionMenus() { private void setUpOptionMenus() {
when(mMenu.findItem(anyInt())).thenAnswer(invocation -> { when(mMenu.findItem(anyInt())).thenAnswer(invocation -> {
final Object[] args = invocation.getArguments(); final Object[] args = invocation.getArguments();