From bf1f93698e6653ddb738cb6dbf963c7ace296a66 Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Wed, 3 May 2017 14:14:56 -0700 Subject: [PATCH] Fix a bug where override filter was always on. Change-Id: I1df52f13d8e335362d2eec18c968227ed9ecf299 Fixes: 37952170 Test: Settings unit test --- .../applications/ManageApplications.java | 12 ++++++--- .../applications/ManageApplicationsTest.java | 27 +++++++++++++------ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java index 505a04f4891..be3bdfa1f4e 100644 --- a/src/com/android/settings/applications/ManageApplications.java +++ b/src/com/android/settings/applications/ManageApplications.java @@ -17,6 +17,7 @@ package com.android.settings.applications; import android.annotation.IdRes; +import android.annotation.Nullable; import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -416,12 +417,15 @@ public class ManageApplications extends InstrumentedPreferenceFragment if (mListType == LIST_TYPE_HIGH_POWER) { 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 - static AppFilter getStorageFilter(int listType, int storageType, String volumeUuid) { + static @Nullable AppFilter getOverrideFilter(int listType, int storageType, String volumeUuid) { AppFilter filter = new VolumeFilter(volumeUuid); if (listType == LIST_TYPE_STORAGE) { if (storageType == STORAGE_TYPE_MUSIC) { @@ -437,7 +441,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment return new CompoundFilter(ApplicationsState.FILTER_MOVIES, filter); } - return filter; + return null; } private int getDefaultFilter() { diff --git a/tests/unit/src/com/android/settings/applications/ManageApplicationsTest.java b/tests/unit/src/com/android/settings/applications/ManageApplicationsTest.java index 92ea22ffb5d..92e556eaee0 100644 --- a/tests/unit/src/com/android/settings/applications/ManageApplicationsTest.java +++ b/tests/unit/src/com/android/settings/applications/ManageApplicationsTest.java @@ -23,14 +23,15 @@ import static org.mockito.Mockito.mock; import android.content.pm.ApplicationInfo; import com.android.settingslib.applications.ApplicationsState; +import com.android.settingslib.applications.ApplicationsState.AppFilter; import org.junit.Test; public class ManageApplicationsTest { @Test - public void getStorageFilter_filtersVolumeForAudio() { - ApplicationsState.AppFilter filter = - ManageApplications.getStorageFilter( + public void getOverrideFilter_filtersVolumeForAudio() { + AppFilter filter = + ManageApplications.getOverrideFilter( ManageApplications.LIST_TYPE_STORAGE, ManageApplications.STORAGE_TYPE_MUSIC, "uuid"); @@ -44,9 +45,9 @@ public class ManageApplicationsTest { } @Test - public void getStorageFilter_filtersVolumeForVideo() { - ApplicationsState.AppFilter filter = - ManageApplications.getStorageFilter( + public void getOverrideFilter_filtersVolumeForVideo() { + AppFilter filter = + ManageApplications.getOverrideFilter( ManageApplications.LIST_TYPE_MOVIES, ManageApplications.STORAGE_TYPE_DEFAULT, "uuid"); @@ -60,9 +61,9 @@ public class ManageApplicationsTest { } @Test - public void getStorageFilter_filtersVolumeForGames() { + public void getOverrideFilter_filtersVolumeForGames() { ApplicationsState.AppFilter filter = - ManageApplications.getStorageFilter( + ManageApplications.getOverrideFilter( ManageApplications.LIST_TYPE_GAMES, ManageApplications.STORAGE_TYPE_DEFAULT, "uuid"); @@ -74,4 +75,14 @@ public class ManageApplicationsTest { 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(); + } }