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

Commit a67d6937 authored by Shikha Malhotra's avatar Shikha Malhotra Committed by Automerger Merge Worker
Browse files

Merge "Making it possible to call setFirstBoot when mInstallD is available"...

Merge "Making it possible to call setFirstBoot when mInstallD is available" into tm-dev am: bf7fddee am: cd9d42c5 am: 4572f22d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18029278



Change-Id: I3a448c37b1dcc37e449c85a35ea93ceb76e96f37
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 18b20064 4572f22d
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ public class Installer extends SystemService {
            IInstalld.FLAG_CLEAR_APP_DATA_KEEP_ART_PROFILES;

    private final boolean mIsolated;

    private volatile boolean mDeferSetFirstBoot;
    private volatile IInstalld mInstalld;
    private volatile Object mWarnIfHeld;

@@ -171,6 +171,7 @@ public class Installer extends SystemService {
            mInstalld = IInstalld.Stub.asInterface(binder);
            try {
                invalidateMounts();
                executeDeferredActions();
            } catch (InstallerException ignored) {
            }
        } else {
@@ -179,6 +180,15 @@ public class Installer extends SystemService {
        }
    }

    /**
     * Perform any deferred actions on mInstalld while the connection could not be made.
     */
    private void executeDeferredActions() throws InstallerException {
        if (mDeferSetFirstBoot) {
            setFirstBoot();
        }
    }

    /**
     * Do several pre-flight checks before making a remote call.
     *
@@ -291,8 +301,15 @@ public class Installer extends SystemService {
            return;
        }
        try {
            // mInstalld might be null if the connection could not be established.
            if (mInstalld != null) {
                mInstalld.setFirstBoot();
        } catch (RemoteException e) {
            } else {
                // if it is null while trying to set the first boot, set a flag to try and set the
                // first boot when the connection is eventually established
                mDeferSetFirstBoot = true;
            }
        } catch (Exception e) {
            throw InstallerException.from(e);
        }
    }