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

Commit 44fb6a73 authored by Patrick Baumann's avatar Patrick Baumann Committed by android-build-merger
Browse files

Merge "Handles pre-process failure without crashing system" into qt-dev am: b8735359

am: 34ff7e76

Change-Id: Ic0801fe259a2e1325ccc377dd267a9daa1d61649
parents ba807683 34ff7e76
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -15033,24 +15033,26 @@ public class PackageManagerService extends IPackageManager.Stub
        void tryProcessInstallRequest(InstallArgs args, int currentStatus) {
            mCurrentState.put(args, currentStatus);
            boolean success = true;
            if (mCurrentState.size() != mChildParams.size()) {
                return;
            }
            int completeStatus = PackageManager.INSTALL_SUCCEEDED;
            for (Integer status : mCurrentState.values()) {
                if (status == PackageManager.INSTALL_UNKNOWN) {
                    return;
                } else if (status != PackageManager.INSTALL_SUCCEEDED) {
                    success = false;
                    completeStatus = status;
                    break;
                }
            }
            final List<InstallRequest> installRequests = new ArrayList<>(mCurrentState.size());
            for (Map.Entry<InstallArgs, Integer> entry : mCurrentState.entrySet()) {
                installRequests.add(new InstallRequest(entry.getKey(),
                        createPackageInstalledInfo(entry.getValue())));
                        createPackageInstalledInfo(completeStatus)));
            }
            processInstallRequestsAsync(success, installRequests);
            processInstallRequestsAsync(
                    completeStatus == PackageManager.INSTALL_SUCCEEDED,
                    installRequests);
        }
    }