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

Commit 20c2641a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents a606d104 beec8e2b
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;