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

Commit de6f7c38 authored by Jakob Schneider's avatar Jakob Schneider Committed by Android (Google) Code Review
Browse files

Merge "Fix getInstalledApplications for archived apps." into main

parents c4919aaa 468fa756
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -4592,6 +4592,7 @@ public class ComputerEngine implements Computer {
        flags = updateFlagsForApplication(flags, userId);
        flags = updateFlagsForApplication(flags, userId);
        final boolean listUninstalled = (flags & MATCH_KNOWN_PACKAGES) != 0;
        final boolean listUninstalled = (flags & MATCH_KNOWN_PACKAGES) != 0;
        final boolean listApex = (flags & MATCH_APEX) != 0;
        final boolean listApex = (flags & MATCH_APEX) != 0;
        final boolean listArchivedOnly = !listUninstalled && (flags & MATCH_ARCHIVED_PACKAGES) != 0;


        enforceCrossUserPermission(
        enforceCrossUserPermission(
                callingUid,
                callingUid,
@@ -4603,7 +4604,7 @@ public class ComputerEngine implements Computer {
        ArrayList<ApplicationInfo> list;
        ArrayList<ApplicationInfo> list;
        final ArrayMap<String, ? extends PackageStateInternal> packageStates =
        final ArrayMap<String, ? extends PackageStateInternal> packageStates =
                getPackageStates();
                getPackageStates();
        if (listUninstalled) {
        if (listUninstalled || listArchivedOnly) {
            list = new ArrayList<>(packageStates.size());
            list = new ArrayList<>(packageStates.size());
            for (PackageStateInternal ps : packageStates.values()) {
            for (PackageStateInternal ps : packageStates.values()) {
                ApplicationInfo ai;
                ApplicationInfo ai;
@@ -4615,6 +4616,11 @@ public class ComputerEngine implements Computer {
                    if (!listApex && ps.getPkg().isApex()) {
                    if (!listApex && ps.getPkg().isApex()) {
                        continue;
                        continue;
                    }
                    }
                    PackageUserStateInternal userState = ps.getUserStateOrDefault(userId);
                    if (listArchivedOnly && !userState.isInstalled()
                            && userState.getArchiveState() == null) {
                        continue;
                    }
                    if (filterSharedLibPackage(ps, callingUid, userId, flags)) {
                    if (filterSharedLibPackage(ps, callingUid, userId, flags)) {
                        continue;
                        continue;
                    }
                    }