From 7e336823388ceee9dce59516aa66d3b18e74f60a Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Thu, 19 Jan 2017 14:12:56 -0800 Subject: [PATCH] Add a filter for audio apps. Bug: 33199077 Test: SettingsLib integ tests Change-Id: Iad3717c78debe4d4c5edbb4337d0c79f062d93a6 --- .../applications/ApplicationsState.java | 15 +++++++++ .../applications/ApplicationsStateTest.java | 31 +++++++++++++++---- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index 24a3aa92b3159..561d92447c1f6 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -1489,4 +1489,19 @@ public class ApplicationsState { return mFirstFilter.filterApp(info) && mSecondFilter.filterApp(info); } } + + public static final AppFilter FILTER_AUDIO = new AppFilter() { + @Override + public void init() { + } + + @Override + public boolean filterApp(AppEntry entry) { + boolean isMusicApp; + synchronized(entry) { + isMusicApp = entry.info.category == ApplicationInfo.CATEGORY_AUDIO; + } + return isMusicApp; + } + }; } diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/applications/ApplicationsStateTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/applications/ApplicationsStateTest.java index 4f2347d845be4..8a6ae86e4156f 100644 --- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/applications/ApplicationsStateTest.java +++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/applications/ApplicationsStateTest.java @@ -29,12 +29,10 @@ import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class ApplicationsStateTest { - private ApplicationsState.AppFilter mFilter; private ApplicationsState.AppEntry mEntry; @Before public void setUp() { - mFilter = ApplicationsState.FILTER_GAMES; mEntry = mock(ApplicationsState.AppEntry.class); mEntry.info = mock(ApplicationInfo.class); } @@ -43,14 +41,14 @@ public class ApplicationsStateTest { public void testGamesFilterAcceptsGameDeprecated() { mEntry.info.flags = ApplicationInfo.FLAG_IS_GAME; - assertThat(mFilter.filterApp(mEntry)).isTrue(); + assertThat(ApplicationsState.FILTER_GAMES.filterApp(mEntry)).isTrue(); } @Test public void testGameFilterAcceptsCategorizedGame() { mEntry.info.category = ApplicationInfo.CATEGORY_GAME; - assertThat(mFilter.filterApp(mEntry)).isTrue(); + assertThat(ApplicationsState.FILTER_GAMES.filterApp(mEntry)).isTrue(); } @Test @@ -58,13 +56,34 @@ public class ApplicationsStateTest { mEntry.info.flags = ApplicationInfo.FLAG_IS_GAME; mEntry.info.category = ApplicationInfo.CATEGORY_GAME; - assertThat(mFilter.filterApp(mEntry)).isTrue(); + assertThat(ApplicationsState.FILTER_GAMES.filterApp(mEntry)).isTrue(); } @Test public void testGamesFilterRejectsNotGame() { mEntry.info.category = ApplicationInfo.CATEGORY_UNDEFINED; - assertThat(mFilter.filterApp(mEntry)).isFalse(); + assertThat(ApplicationsState.FILTER_GAMES.filterApp(mEntry)).isFalse(); + } + + @Test + public void testAudioFilterAcceptsCategorizedAudio() { + mEntry.info.category = ApplicationInfo.CATEGORY_AUDIO; + + assertThat(ApplicationsState.FILTER_AUDIO.filterApp(mEntry)).isTrue(); + } + + @Test + public void testAudiosFilterRejectsNotAudio() { + mEntry.info.category = ApplicationInfo.CATEGORY_GAME; + + assertThat(ApplicationsState.FILTER_AUDIO.filterApp(mEntry)).isFalse(); + } + + @Test + public void testAudiosFilterRejectsDefaultCategory() { + mEntry.info.category = ApplicationInfo.CATEGORY_UNDEFINED; + + assertThat(ApplicationsState.FILTER_AUDIO.filterApp(mEntry)).isFalse(); } }