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

Commit 05577596 authored by Ivan Chiang's avatar Ivan Chiang Committed by Android (Google) Code Review
Browse files

Merge "[PM] Keep the value of isPendingRestore in share user changed" into main

parents a01d784a 26d71a68
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -170,6 +170,7 @@ final class ScanPackageUtils {
            }
        }

        boolean isPendingRestoreBefore = false;
        if (pkgSetting != null && oldSharedUserSetting != sharedUserSetting) {
            PackageManagerService.reportSettingsProblem(Log.WARN,
                    "Package " + parsedPackage.getPackageName() + " shared user changed from "
@@ -178,6 +179,9 @@ final class ScanPackageUtils {
                            + " to "
                            + (sharedUserSetting != null ? sharedUserSetting.name : "<nothing>")
                            + "; replacing with new");
            // Preserve the value of isPendingRestore. We need to set it to the new PackageSetting
            // if the value is true to restore the app
            isPendingRestoreBefore = pkgSetting.isPendingRestore();
            pkgSetting = null;
        }

@@ -224,6 +228,11 @@ final class ScanPackageUtils {
                    parsedPackage.getUsesStaticLibrariesVersions(), parsedPackage.getMimeGroups(),
                    newDomainSetId,
                    parsedPackage.getTargetSdkVersion(), parsedPackage.getRestrictUpdateHash());

            // If isPendingRestore is true before, set the value true to the PackageSetting
            if (isPendingRestoreBefore) {
                pkgSetting.setPendingRestore(true);
            }
        } else {
            // make a deep copy to avoid modifying any existing system state.
            pkgSetting = new PackageSetting(pkgSetting);