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

Commit f567dd46 authored by Todd Kennedy's avatar Todd Kennedy Committed by android-build-merger
Browse files

Merge "Save observer in call to commit" into oc-mr1-dev

am: 20c2641a

Change-Id: Ie4917755c4936d8afc876aeb60fda4ee225fadb4
parents 4bb0eb9f 20c2641a
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -274,9 +274,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
        @Override
        public boolean handleMessage(Message msg) {
            synchronized (mLock) {
                if (msg.obj != null) {
                    mRemoteObserver = (IPackageInstallObserver2) msg.obj;
                }
                try {
                    commitLocked();
                } catch (PackageManagerException e) {
@@ -666,7 +663,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
    }

    @Override
    public void commit(IntentSender statusReceiver, boolean forTransfer) {
    public void commit(@NonNull IntentSender statusReceiver, boolean forTransfer) {
        Preconditions.checkNotNull(statusReceiver);

        // Cache package manager data without the lock held
@@ -679,6 +676,10 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
            assertCallerIsOwnerOrRootLocked();
            assertPreparedAndNotDestroyedLocked("commit");

            final PackageInstallObserverAdapter adapter = new PackageInstallObserverAdapter(
                    mContext, statusReceiver, sessionId, isInstallerDeviceOwnerLocked(), userId);
            mRemoteObserver = adapter.getBinder();

            if (forTransfer) {
                mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, null);

@@ -712,9 +713,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
            mActiveCount.incrementAndGet();

            mCommitted = true;
            final PackageInstallObserverAdapter adapter = new PackageInstallObserverAdapter(
                    mContext, statusReceiver, sessionId, isInstallerDeviceOwnerLocked(), userId);
            mHandler.obtainMessage(MSG_COMMIT, adapter.getBinder()).sendToTarget();
            mHandler.obtainMessage(MSG_COMMIT).sendToTarget();
        }

        if (!wasSealed) {
@@ -1422,8 +1421,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
    }

    private void dispatchSessionFinished(int returnCode, String msg, Bundle extras) {
        IPackageInstallObserver2 observer;
        String packageName;
        final IPackageInstallObserver2 observer;
        final String packageName;
        synchronized (mLock) {
            mFinalStatus = returnCode;
            mFinalMessage = msg;