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

Commit e46a3cd5 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

Always mark package as "uninstalled" for all new users.

Fixes: 326223729
Test: atest PackageManagerShellCommandMultiUserTest
Change-Id: I39f92567139827c1844bd3603e296f4e05b45841
parent 0fb77156
Loading
Loading
Loading
Loading
+16 −8
Original line number Original line Diff line number Diff line
@@ -1541,6 +1541,19 @@ public class PackageManagerService implements PackageSender, TestUtilityService
            return;
            return;
        }
        }


        // Initialize all necessary settings for archival installation.
        pkgSetting
                // No package.
                .setPkg(null)
                // Mark for later restore.
                .setPendingRestore(true);
        for (int userId : userIds) {
            // Unmark "installed" for all users.
            pkgSetting
                    .modifyUserState(userId)
                    .setInstalled(false);
        }

        String responsibleInstallerPackage = PackageArchiver.getResponsibleInstallerPackage(
        String responsibleInstallerPackage = PackageArchiver.getResponsibleInstallerPackage(
                pkgSetting);
                pkgSetting);
        // TODO(b/278553670) Check if responsibleInstallerPackage supports unarchival.
        // TODO(b/278553670) Check if responsibleInstallerPackage supports unarchival.
@@ -1551,18 +1564,13 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        for (int userId : userIds) {
        for (int userId : userIds) {
            var archiveState = mInstallerService.mPackageArchiver.createArchiveState(
            var archiveState = mInstallerService.mPackageArchiver.createArchiveState(
                    archivePackage, userId, responsibleInstallerPackage);
                    archivePackage, userId, responsibleInstallerPackage);
            if (archiveState == null) {
            if (archiveState != null) {
                continue;
            }
                pkgSetting
                pkgSetting
                    .setPkg(null)
                    // This package was installed as archived. Need to mark it for later restore.
                    .setPendingRestore(true)
                    .modifyUserState(userId)
                    .modifyUserState(userId)
                    .setInstalled(false)
                    .setArchiveState(archiveState);
                    .setArchiveState(archiveState);
            }
            }
        }
        }
    }




    void scheduleWriteSettings() {
    void scheduleWriteSettings() {