OSDN Git Service

Add a filter for audio apps.
authorDaniel Nishi <dhnishi@google.com>
Thu, 19 Jan 2017 22:12:56 +0000 (14:12 -0800)
committerDaniel Nishi <dhnishi@google.com>
Thu, 26 Jan 2017 22:34:32 +0000 (14:34 -0800)
Bug: 33199077
Test: SettingsLib integ tests
Change-Id: Iad3717c78debe4d4c5edbb4337d0c79f062d93a6

packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
packages/SettingsLib/tests/integ/src/com/android/settingslib/applications/ApplicationsStateTest.java

index 24a3aa9..561d924 100644 (file)
@@ -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;
+        }
+    };
 }
index 4f2347d..8a6ae86 100644 (file)
@@ -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();
     }
 }