From ad2b77565c423c134806fa4ca372d57ecf9554ab Mon Sep 17 00:00:00 2001 From: Jesse Evans Date: Wed, 12 Apr 2017 18:06:50 -0700 Subject: [PATCH] Fix instant app filtering in ApplicationsState This fixes instant apps showing up as installed apps in the settings UI where they should not be (namely the opening links page). Test: Added tests for the filter runtest -x packages/SettingsLib/tests/integ Bug: 37108030 Change-Id: I0fc6cfd237d470a1f4dde7b2db38d8b3643ee6f7 --- .../applications/ApplicationsState.java | 3 ++- .../applications/ApplicationsStateTest.java | 16 ++++++++++++++++ 2 files changed, 18 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 dfa162743436e..8a86c13abb7d5 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -1502,7 +1502,8 @@ public class ApplicationsState { @Override public boolean filterApp(AppEntry entry) { - return (entry.info.privateFlags & ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS) != 0; + return !AppUtils.isInstant(entry.info) + && (entry.info.privateFlags & ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS) != 0; } }; 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 c680b2a2ce4b0..fed18fa1bcb03 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,6 +200,22 @@ public class ApplicationsStateTest { assertThat(ApplicationsState.FILTER_ALL_ENABLED.filterApp(mEntry)).isFalse(); } + @Test + public void testFilterWithDomainUrls() { + mEntry.info.privateFlags |= ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS; + // should included updated system apps + when(mEntry.info.isInstantApp()).thenReturn(false); + assertThat(ApplicationsState.FILTER_WITH_DOMAIN_URLS.filterApp(mEntry)) + .isTrue(); + mEntry.info.privateFlags &= ~ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS; + assertThat(ApplicationsState.FILTER_WITH_DOMAIN_URLS.filterApp(mEntry)) + .isFalse(); + mEntry.info.privateFlags |= ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS; + when(mEntry.info.isInstantApp()).thenReturn(true); + assertThat(ApplicationsState.FILTER_WITH_DOMAIN_URLS.filterApp(mEntry)) + .isFalse(); + } + @Test public void testDisabledFilterRejectsInstantApp() { mEntry.info.enabled = false;