Fix a bug where override filter was always on.

Change-Id: I1df52f13d8e335362d2eec18c968227ed9ecf299
Fixes: 37952170
Test: Settings unit test
This commit is contained in:
Daniel Nishi
2017-05-03 14:14:56 -07:00
parent 833927929e
commit bf1f93698e
2 changed files with 27 additions and 12 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.applications; package com.android.settings.applications;
import android.annotation.IdRes; import android.annotation.IdRes;
import android.annotation.Nullable;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -416,12 +417,15 @@ public class ManageApplications extends InstrumentedPreferenceFragment
if (mListType == LIST_TYPE_HIGH_POWER) { if (mListType == LIST_TYPE_HIGH_POWER) {
mFilterAdapter.enableFilter(FILTER_APPS_POWER_WHITELIST_ALL); mFilterAdapter.enableFilter(FILTER_APPS_POWER_WHITELIST_ALL);
} }
// Storage filters below.
mApplications.setOverrideFilter(getStorageFilter(mListType, mStorageType, mVolumeUuid)); AppFilter overrideFilter = getOverrideFilter(mListType, mStorageType, mVolumeUuid);
if (overrideFilter != null) {
mApplications.setOverrideFilter(overrideFilter);
}
} }
@VisibleForTesting @VisibleForTesting
static AppFilter getStorageFilter(int listType, int storageType, String volumeUuid) { static @Nullable AppFilter getOverrideFilter(int listType, int storageType, String volumeUuid) {
AppFilter filter = new VolumeFilter(volumeUuid); AppFilter filter = new VolumeFilter(volumeUuid);
if (listType == LIST_TYPE_STORAGE) { if (listType == LIST_TYPE_STORAGE) {
if (storageType == STORAGE_TYPE_MUSIC) { if (storageType == STORAGE_TYPE_MUSIC) {
@@ -437,7 +441,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
return new CompoundFilter(ApplicationsState.FILTER_MOVIES, filter); return new CompoundFilter(ApplicationsState.FILTER_MOVIES, filter);
} }
return filter; return null;
} }
private int getDefaultFilter() { private int getDefaultFilter() {

View File

@@ -23,14 +23,15 @@ import static org.mockito.Mockito.mock;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppFilter;
import org.junit.Test; import org.junit.Test;
public class ManageApplicationsTest { public class ManageApplicationsTest {
@Test @Test
public void getStorageFilter_filtersVolumeForAudio() { public void getOverrideFilter_filtersVolumeForAudio() {
ApplicationsState.AppFilter filter = AppFilter filter =
ManageApplications.getStorageFilter( ManageApplications.getOverrideFilter(
ManageApplications.LIST_TYPE_STORAGE, ManageApplications.LIST_TYPE_STORAGE,
ManageApplications.STORAGE_TYPE_MUSIC, ManageApplications.STORAGE_TYPE_MUSIC,
"uuid"); "uuid");
@@ -44,9 +45,9 @@ public class ManageApplicationsTest {
} }
@Test @Test
public void getStorageFilter_filtersVolumeForVideo() { public void getOverrideFilter_filtersVolumeForVideo() {
ApplicationsState.AppFilter filter = AppFilter filter =
ManageApplications.getStorageFilter( ManageApplications.getOverrideFilter(
ManageApplications.LIST_TYPE_MOVIES, ManageApplications.LIST_TYPE_MOVIES,
ManageApplications.STORAGE_TYPE_DEFAULT, ManageApplications.STORAGE_TYPE_DEFAULT,
"uuid"); "uuid");
@@ -60,9 +61,9 @@ public class ManageApplicationsTest {
} }
@Test @Test
public void getStorageFilter_filtersVolumeForGames() { public void getOverrideFilter_filtersVolumeForGames() {
ApplicationsState.AppFilter filter = ApplicationsState.AppFilter filter =
ManageApplications.getStorageFilter( ManageApplications.getOverrideFilter(
ManageApplications.LIST_TYPE_GAMES, ManageApplications.LIST_TYPE_GAMES,
ManageApplications.STORAGE_TYPE_DEFAULT, ManageApplications.STORAGE_TYPE_DEFAULT,
"uuid"); "uuid");
@@ -74,4 +75,14 @@ public class ManageApplicationsTest {
assertThat(filter.filterApp(appEntry)).isTrue(); assertThat(filter.filterApp(appEntry)).isTrue();
} }
@Test
public void getOverrideFilter_isEmptyNormally() {
ApplicationsState.AppFilter filter =
ManageApplications.getOverrideFilter(
ManageApplications.LIST_TYPE_MAIN,
ManageApplications.STORAGE_TYPE_DEFAULT,
"uuid");
assertThat(filter).isNull();
}
} }