diff options
| author | 2016-04-14 09:39:59 +0000 | |
|---|---|---|
| committer | 2016-04-14 09:40:00 +0000 | |
| commit | 25c43b78d11f74e98ba9d5f541647aa5ed44ebce (patch) | |
| tree | bd82723287277796a53103603faba367d4bdd3a7 | |
| parent | 73ba4a7136acd67c593884d7feefff3ec43f3ace (diff) | |
| parent | 186f29b6d8f00dfc16288b4972d43e874a805229 (diff) | |
Merge "Includes both direct boot aware and unaware apps in Apps default view" into nyc-dev
| -rw-r--r-- | core/java/android/content/pm/PackageUserState.java | 5 | ||||
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java | 21 |
2 files changed, 24 insertions, 2 deletions
diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java index 8236f552901f..995d2ccce953 100644 --- a/core/java/android/content/pm/PackageUserState.java +++ b/core/java/android/content/pm/PackageUserState.java @@ -87,6 +87,11 @@ public class PackageUserState { /** * Test if the given component is considered installed, enabled and a match * for the given flags. + * + * <p> + * Expects at least one of {@link PackageManager#MATCH_DIRECT_BOOT_AWARE} and + * {@link PackageManager#MATCH_DIRECT_BOOT_UNAWARE} are specified in {@code flags}. + * </p> */ public boolean isMatch(ComponentInfo componentInfo, int flags) { if (!isInstalled(flags)) return false; diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index 888103439a02..8c2af45ecc4f 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -839,8 +839,18 @@ public class ApplicationsState { for (int i = 0; i < mEntriesMap.size(); i++) { int userId = mEntriesMap.keyAt(i); - List<ResolveInfo> intents = mPm.queryIntentActivitiesAsUser(launchIntent, - PackageManager.GET_DISABLED_COMPONENTS, userId); + // If we do not specify MATCH_DIRECT_BOOT_AWARE or + // MATCH_DIRECT_BOOT_UNAWARE, system will derive and update the flags + // according to the user's lock state. When the user is locked, components + // with ComponentInfo#directBootAware == false will be filtered. We should + // explicitly include both direct boot aware and unaware components here. + List<ResolveInfo> intents = mPm.queryIntentActivitiesAsUser( + launchIntent, + PackageManager.GET_DISABLED_COMPONENTS + | PackageManager.MATCH_DIRECT_BOOT_AWARE + | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, + userId + ); synchronized (mEntriesMap) { if (DEBUG_LOCKING) Log.v(TAG, "MSG_LOAD_LAUNCHER acquired lock"); HashMap<String, AppEntry> userEntries = mEntriesMap.valueAt(i); @@ -1116,6 +1126,10 @@ public class ApplicationsState { public boolean mounted; + /** + * Setting this to {@code true} prevents the entry to be filtered by + * {@link #FILTER_DOWNLOADED_AND_LAUNCHER}. + */ public boolean hasLauncherEntry; public String getNormalizedLabel() { @@ -1286,6 +1300,9 @@ public class ApplicationsState { } }; + /** + * Displays a combined list with "downloaded" and "visible in launcher" apps only. + */ public static final AppFilter FILTER_DOWNLOADED_AND_LAUNCHER = new AppFilter() { public void init() { } |