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

Commit b08116e9 authored by Patrick Baumann's avatar Patrick Baumann
Browse files

Fixes query logic when not instant

What should have been the final branch of an if / else if sequence was
broken from it and so VISIBLE_TO_INSTANT activities were being made
visible to normal packages targetting R. This change fixes that.

Fixes: 151696596
Test: atest AppEnumerationTests
Change-Id: I8e60c52a1e917d56d2714fed049788439bd2acc6
parent 0fc5b145
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -7240,8 +7240,8 @@ public class PackageManagerService extends IPackageManager.Stub
                resolveInfos.set(i, installerInfo);
                continue;
            }
            // caller is a full app
            if (ephemeralPkgName == null) {
                // caller is a full app
                SettingBase callingSetting =
                        mSettings.getSettingLPr(UserHandle.getAppId(filterCallingUid));
                PackageSetting resolvedSetting =
@@ -7261,11 +7261,9 @@ public class PackageManagerService extends IPackageManager.Stub
                    && intent.getComponent() == null) {
                // ephemeral apps can launch other ephemeral apps indirectly
                continue;
            }
            } else if (((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)
                    && !info.activityInfo.applicationInfo.isInstantApp()) {
                // 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;
            }
            resolveInfos.remove(i);