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

Commit 468fa756 authored by Jakob Schneider's avatar Jakob Schneider
Browse files

Fix getInstalledApplications for archived apps.

Test: PackageInstallerArchiveTest
Bug: 290776158
Change-Id: I86610eab699d993b104512cc830f71967adf2311
parent 667a3785
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -4596,6 +4596,7 @@ public class ComputerEngine implements Computer {
        flags = updateFlagsForApplication(flags, userId);
        final boolean listUninstalled = (flags & MATCH_KNOWN_PACKAGES) != 0;
        final boolean listApex = (flags & MATCH_APEX) != 0;
        final boolean listArchivedOnly = !listUninstalled && (flags & MATCH_ARCHIVED_PACKAGES) != 0;

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