Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3072aa76 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "dynamically install all missing splits" into oc-mr1-dev

parents bbef8631 2dd3ad06
Loading
Loading
Loading
Loading
+22 −24
Original line number Diff line number Diff line
@@ -7212,18 +7212,16 @@ public class PackageManagerService extends IPackageManager.Stub
            String ephemeralPkgName) {
        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) {
            if (info.activityInfo.splitName != null
                    && !ArrayUtils.contains(info.activityInfo.applicationInfo.splitNames,
                            info.activityInfo.splitName)) {
                // requested activity is defined in a split that hasn't been installed yet.
                // add the installer to the resolve list
                    if (DEBUG_EPHEMERAL) {
                        Slog.v(TAG, "Adding ephemeral installer to the ResolveInfo list");
                if (DEBUG_INSTALL) {
                    Slog.v(TAG, "Adding installer to the ResolveInfo list");
                }
                final ResolveInfo installerInfo = new ResolveInfo(mInstantAppInstallerInfo);
                installerInfo.auxiliaryInfo = new AuxiliaryResolveInfo(
@@ -7240,7 +7238,6 @@ public class PackageManagerService extends IPackageManager.Stub
                resolveInfos.set(i, installerInfo);
                continue;
            }
            }
            // caller is a full app, don't need to apply any other filtering
            if (ephemeralPkgName == null) {
                continue;
@@ -7249,6 +7246,7 @@ public class PackageManagerService extends IPackageManager.Stub
                continue;
            }
            // allow activities that have been explicitly exposed to ephemeral apps
            final boolean isEphemeralApp = info.activityInfo.applicationInfo.isInstantApp();
            if (!isEphemeralApp
                    && ((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)) {
                continue;