diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 6c59505c8dd0..f2eee14d522f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -7181,16 +7181,13 @@ public class PackageManagerService extends IPackageManager.Stub */ private List<ResolveInfo> applyPostResolutionFilter(List<ResolveInfo> resolveInfos, String ephemeralPkgName) { - // TODO: When adding on-demand split support for non-instant apps, remove this check - // and always apply post filtering - if (ephemeralPkgName == null) { - return resolveInfos; - } for (int i = resolveInfos.size() - 1; i >= 0; i--) { final ResolveInfo info = resolveInfos.get(i); final boolean isEphemeralApp = info.activityInfo.applicationInfo.isInstantApp(); + // TODO: When adding on-demand split support for non-instant apps, remove this check + // and always apply post filtering // allow activities that are defined in the provided package - if (isEphemeralApp && ephemeralPkgName.equals(info.activityInfo.packageName)) { + if (isEphemeralApp) { if (info.activityInfo.splitName != null && !ArrayUtils.contains(info.activityInfo.applicationInfo.splitNames, info.activityInfo.splitName)) { @@ -7215,6 +7212,10 @@ public class PackageManagerService extends IPackageManager.Stub } continue; } + // caller is a full app, don't need to apply any other filtering + if (ephemeralPkgName == null) { + continue; + } // allow activities that have been explicitly exposed to ephemeral apps if (!isEphemeralApp && ((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)) { |