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

Commit f551a0f7 authored by TYM Tsai's avatar TYM Tsai Committed by Android (Google) Code Review
Browse files

Merge "Minify the scope to wait an app to be killed" into main

parents c6387454 47ca1b31
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -62,6 +62,12 @@ final class PackageFreezer implements AutoCloseable {


    PackageFreezer(String packageName, int userId, String killReason,
    PackageFreezer(String packageName, int userId, String killReason,
            PackageManagerService pm, int exitInfoReason, @Nullable InstallRequest request) {
            PackageManagerService pm, int exitInfoReason, @Nullable InstallRequest request) {
        this(packageName, userId, killReason, pm, exitInfoReason, request, false);
    }

    PackageFreezer(String packageName, int userId, String killReason,
            PackageManagerService pm, int exitInfoReason, @Nullable InstallRequest request,
            boolean waitAppKilled) {
        mPm = pm;
        mPm = pm;
        mPackageName = packageName;
        mPackageName = packageName;
        mInstallRequest = request;
        mInstallRequest = request;
@@ -77,7 +83,7 @@ final class PackageFreezer implements AutoCloseable {
            ps = mPm.mSettings.getPackageLPr(mPackageName);
            ps = mPm.mSettings.getPackageLPr(mPackageName);
        }
        }
        if (ps != null) {
        if (ps != null) {
            if (Flags.waitApplicationKilled()) {
            if (waitAppKilled && Flags.waitApplicationKilled()) {
                mPm.killApplicationSync(ps.getPackageName(), ps.getAppId(), userId, killReason,
                mPm.killApplicationSync(ps.getPackageName(), ps.getAppId(), userId, killReason,
                        exitInfoReason);
                        exitInfoReason);
            } else {
            } else {
+10 −2
Original line number Original line Diff line number Diff line
@@ -4347,7 +4347,14 @@ public class PackageManagerService implements PackageSender, TestUtilityService


    public PackageFreezer freezePackage(String packageName, int userId, String killReason,
    public PackageFreezer freezePackage(String packageName, int userId, String killReason,
            int exitInfoReason, InstallRequest request) {
            int exitInfoReason, InstallRequest request) {
        return new PackageFreezer(packageName, userId, killReason, this, exitInfoReason, request);
        return freezePackage(packageName, userId, killReason, exitInfoReason, request,
                /* waitAppKilled= */ false);
    }

    private PackageFreezer freezePackage(String packageName, int userId, String killReason,
            int exitInfoReason, InstallRequest request, boolean waitAppKilled) {
        return new PackageFreezer(packageName, userId, killReason, this, exitInfoReason, request,
                waitAppKilled);
    }
    }


    public PackageFreezer freezePackageForDelete(String packageName, int userId, int deleteFlags,
    public PackageFreezer freezePackageForDelete(String packageName, int userId, int deleteFlags,
@@ -4772,7 +4779,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService
                    final boolean succeeded;
                    final boolean succeeded;
                    try (PackageFreezer freezer = freezePackage(packageName, UserHandle.USER_ALL,
                    try (PackageFreezer freezer = freezePackage(packageName, UserHandle.USER_ALL,
                            "clearApplicationUserData",
                            "clearApplicationUserData",
                            ApplicationExitInfo.REASON_USER_REQUESTED, null /* request */)) {
                            ApplicationExitInfo.REASON_USER_REQUESTED, null /* request */,
                            /* waitAppKilled= */ true)) {
                        try (PackageManagerTracedLock installLock = mInstallLock.acquireLock()) {
                        try (PackageManagerTracedLock installLock = mInstallLock.acquireLock()) {
                            succeeded = clearApplicationUserDataLIF(snapshotComputer(), packageName,
                            succeeded = clearApplicationUserDataLIF(snapshotComputer(), packageName,
                                    userId);
                                    userId);