From 45c23fa6894b790ccb065552921563342d95942b Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Mon, 27 Mar 2017 13:19:02 -0700 Subject: Add support for movies & tv apps querying. Bug: 36223441 Test: Robotest Change-Id: Icbb9b8947112f45d37858ceb5cfb1d76f06bda32 Merged-In: Icfb34844601f87d11b7309eacf9385d49ed36338 --- .../settingslib/applications/ApplicationsState.java | 18 +++++++++++++++++- .../applications/ApplicationsStateTest.java | 14 ++++++++++++++ proto/src/metrics_constants.proto | 5 +++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index 8833fb8cab53..296b4d6f5c05 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -1601,6 +1601,21 @@ public class ApplicationsState { } }; + public static final AppFilter FILTER_MOVIES = new AppFilter() { + @Override + public void init() { + } + + @Override + public boolean filterApp(AppEntry entry) { + boolean isMovieApp; + synchronized(entry) { + isMovieApp = entry.info.category == ApplicationInfo.CATEGORY_VIDEO; + } + return isMovieApp; + } + }; + public static final AppFilter FILTER_OTHER_APPS = new AppFilter() { @Override public void init() { @@ -1611,7 +1626,8 @@ public class ApplicationsState { boolean isCategorized; synchronized(entry) { isCategorized = entry.info.category == ApplicationInfo.CATEGORY_AUDIO || - entry.info.category == ApplicationInfo.CATEGORY_GAME; + entry.info.category == ApplicationInfo.CATEGORY_GAME || + entry.info.category == ApplicationInfo.CATEGORY_VIDEO; } return !isCategorized; } 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 6a029f0be64d..d6ab8d2f2587 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 @@ -200,4 +200,18 @@ public class ApplicationsStateTest { when(mEntry.info.isInstantApp()).thenReturn(true); assertThat(ApplicationsState.FILTER_DISABLED.filterApp(mEntry)).isFalse(); } + + @Test + public void testVideoFilterAcceptsCategorizedVideo() { + mEntry.info.category = ApplicationInfo.CATEGORY_VIDEO; + + assertThat(ApplicationsState.FILTER_MOVIES.filterApp(mEntry)).isTrue(); + } + + @Test + public void testVideosFilterRejectsNotVideo() { + mEntry.info.category = ApplicationInfo.CATEGORY_GAME; + + assertThat(ApplicationsState.FILTER_MOVIES.filterApp(mEntry)).isFalse(); + } } diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto index 579c54cd311e..f56cbdda734b 100644 --- a/proto/src/metrics_constants.proto +++ b/proto/src/metrics_constants.proto @@ -3906,6 +3906,11 @@ message MetricsEvent { // OS: O FINGERPRINT_REMOVE_SIDECAR = 934; + // OPEN: Settings > Storage > Movies & TV + // CATEGORY: SETTINGS + // OS: O + APPLICATIONS_STORAGE_MOVIES = 935; + // ---- End O Constants, all O constants go above this line ---- // Add new aosp constants above this line. -- cgit v1.2.3-59-g8ed1b From 140ceb1dccabe79468586a7ef74ed02ec114485c Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Fri, 31 Mar 2017 10:20:08 -0700 Subject: Use the real filters when determining Other Apps. This fixes a bug where an app could be classified twice. Fixes: 36535527 Test: SettingsLib Unit Test Change-Id: I830a76fa33680b1dd71b285d9419139f84f1d60d --- .../applications/ApplicationsState.java | 33 +++++++++++----------- .../applications/ApplicationsStateTest.java | 7 +++++ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index 296b4d6f5c05..02f1162fc968 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -1616,20 +1616,21 @@ public class ApplicationsState { } }; - public static final AppFilter FILTER_OTHER_APPS = new AppFilter() { - @Override - public void init() { - } - - @Override - public boolean filterApp(AppEntry entry) { - boolean isCategorized; - synchronized(entry) { - isCategorized = entry.info.category == ApplicationInfo.CATEGORY_AUDIO || - entry.info.category == ApplicationInfo.CATEGORY_GAME || - entry.info.category == ApplicationInfo.CATEGORY_VIDEO; - } - return !isCategorized; - } - }; + public static final AppFilter FILTER_OTHER_APPS = + new AppFilter() { + @Override + public void init() {} + + @Override + public boolean filterApp(AppEntry entry) { + boolean isCategorized; + synchronized (entry) { + isCategorized = + FILTER_AUDIO.filterApp(entry) + || FILTER_GAMES.filterApp(entry) + || FILTER_MOVIES.filterApp(entry); + } + return !isCategorized; + } + }; } 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 d6ab8d2f2587..c680b2a2ce4b 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 @@ -173,6 +173,13 @@ public class ApplicationsStateTest { .isTrue(); } + @Test + public void testOtherAppsRejectsLegacyGame() { + mEntry.info.flags = ApplicationInfo.FLAG_IS_GAME; + + assertThat(ApplicationsState.FILTER_OTHER_APPS.filterApp(mEntry)).isFalse(); + } + @Test public void testInstantFilterAcceptsInstantApp() { when(mEntry.info.isInstantApp()).thenReturn(true); -- cgit v1.2.3-59-g8ed1b