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

Commit 64ece235 authored by Jiakai Zhang's avatar Jiakai Zhang
Browse files

Revert "Propagate external profile errors for `adb install-multi..."

Revert submission 24811599-dm-profile-validation-multi-package

Reason for revert: PM doesn't check for @FlaggedApi before calling new ART API which causes b/304247444

Reverted changes: /q/submissionid:24811599-dm-profile-validation-multi-package

Change-Id: I843feb2db64f9ec9973d65abad6f0801bba41bfb
parent 88fce38a
Loading
Loading
Loading
Loading
+1 −26
Original line number Diff line number Diff line
@@ -2930,40 +2930,15 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
     * @return a future that will be completed when the whole process is completed.
     */
    private CompletableFuture<Void> install() {
        // `futures` either contains only one session (`this`) or contains one parent session
        // (`this`) and n-1 child sessions.
        List<CompletableFuture<InstallResult>> futures = installNonStaged();
        CompletableFuture<InstallResult>[] arr = new CompletableFuture[futures.size()];
        return CompletableFuture.allOf(futures.toArray(arr)).whenComplete((r, t) -> {
            if (t == null) {
                setSessionApplied();
                var multiPackageWarnings = new ArrayList<String>();
                if (isMultiPackage()) {
                    // This is a parent session. Collect warnings from children.
                for (CompletableFuture<InstallResult> f : futures) {
                    InstallResult result = f.join();
                        if (result.session != this && result.extras != null) {
                            ArrayList<String> childWarnings = result.extras.getStringArrayList(
                                    PackageInstaller.EXTRA_WARNINGS);
                            if (!ArrayUtils.isEmpty(childWarnings)) {
                                multiPackageWarnings.addAll(childWarnings);
                            }
                        }
                    }
                }
                for (CompletableFuture<InstallResult> f : futures) {
                    InstallResult result = f.join();
                    Bundle extras = result.extras;
                    if (isMultiPackage() && result.session == this
                            && !multiPackageWarnings.isEmpty()) {
                        if (extras == null) {
                            extras = new Bundle();
                        }
                        extras.putStringArrayList(
                                PackageInstaller.EXTRA_WARNINGS, multiPackageWarnings);
                    }
                    result.session.dispatchSessionFinished(
                            INSTALL_SUCCEEDED, "Session installed", extras);
                            INSTALL_SUCCEEDED, "Session installed", result.extras);
                }
            } else {
                PackageManagerException e = (PackageManagerException) t.getCause();