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

Commit c85be9b6 authored by TYM Tsai's avatar TYM Tsai
Browse files

Move doPostInsstall to InstallPackageHelper

Bug: 388159696
Flag: EXEMPT refactor code
Test: atest CtsPackageInstallTestCases
Test: atest CtsInstallHostTestCases
Change-Id: I66086ee58016744af30c605f09940d7197f7773b
parent 613d6b0e
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -1021,7 +1021,7 @@ final class InstallPackageHelper {
     *
     * Failure at any phase will result in a full failure to install all packages.
     */
    void installPackagesTraced(List<InstallRequest> requests) {
    void installPackagesTraced(List<InstallRequest> requests, MoveInfo moveInfo) {
        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "installPackages");
        boolean success = false;
        final Map<String, Boolean> createdAppId = new ArrayMap<>(requests.size());
@@ -1049,10 +1049,37 @@ final class InstallPackageHelper {
        } finally {
            completeInstallProcess(requests, createdAppId, success);
            Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
            doPostInstall(requests, moveInfo);
            releaseWakeLock(acquireTime, requests.size());
        }
    }

    private void doPostInstall(List<InstallRequest> requests, MoveInfo moveInfo) {
        for (InstallRequest request : requests) {
            doPostInstallCleanUp(request, moveInfo);
        }

        for (InstallRequest request : requests) {
            restoreAndPostInstall(request);
        }
    }

    private void doPostInstallCleanUp(InstallRequest request, MoveInfo moveInfo) {
        if (moveInfo != null) {
            if (request.getReturnCode() == PackageManager.INSTALL_SUCCEEDED) {
                mRemovePackageHelper.cleanUpForMoveInstall(moveInfo.mFromUuid,
                        moveInfo.mPackageName, moveInfo.mFromCodePath);
            } else {
                mRemovePackageHelper.cleanUpForMoveInstall(moveInfo.mToUuid,
                        moveInfo.mPackageName, moveInfo.mFromCodePath);
            }
        } else {
            if (request.getReturnCode() != PackageManager.INSTALL_SUCCEEDED) {
                mRemovePackageHelper.removeCodePath(request.getCodeFile());
            }
        }
    }

    private long acquireWakeLock(int count) {
        if (!mPm.isSystemReady()) {
            return -1;
+2 −22
Original line number Diff line number Diff line
@@ -550,31 +550,11 @@ class InstallingSession {
                    cleanUpForFailedInstall(request);
                }
            }
        } else {
            mPm.installPackagesTraced(installRequests);

            for (InstallRequest request : installRequests) {
                doPostInstall(request);
            }
        }
            for (InstallRequest request : installRequests) {
                mPm.restoreAndPostInstall(request);
            }
    }

    private void doPostInstall(InstallRequest request) {
        if (mMoveInfo != null) {
            if (request.getReturnCode() == PackageManager.INSTALL_SUCCEEDED) {
                mPm.cleanUpForMoveInstall(mMoveInfo.mFromUuid,
                        mMoveInfo.mPackageName, mMoveInfo.mFromCodePath);
            } else {
                mPm.cleanUpForMoveInstall(mMoveInfo.mToUuid,
                        mMoveInfo.mPackageName, mMoveInfo.mFromCodePath);
            }
        } else {
            if (request.getReturnCode() != PackageManager.INSTALL_SUCCEEDED) {
                mPm.removeCodePath(request.getCodeFile());
            }
            mPm.installPackagesTraced(installRequests, mMoveInfo);
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -8214,8 +8214,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        return mInstallPackageHelper.enableCompressedPackage(stubPkg, stubPs);
    }

    void installPackagesTraced(List<InstallRequest> requests) {
        mInstallPackageHelper.installPackagesTraced(requests);
    void installPackagesTraced(List<InstallRequest> requests, MoveInfo moveInfo) {
        mInstallPackageHelper.installPackagesTraced(requests, moveInfo);
    }

    void restoreAndPostInstall(InstallRequest request) {