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

am: 20c2641ad4

Change-Id: Ie4917755c4936d8afc876aeb60fda4ee225fadb4
This commit is contained in:
Todd Kennedy
2017-08-11 20:49:00 +00:00
committed by android-build-merger

View File

@@ -274,9 +274,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
@Override @Override
public boolean handleMessage(Message msg) { public boolean handleMessage(Message msg) {
synchronized (mLock) { synchronized (mLock) {
if (msg.obj != null) {
mRemoteObserver = (IPackageInstallObserver2) msg.obj;
}
try { try {
commitLocked(); commitLocked();
} catch (PackageManagerException e) { } catch (PackageManagerException e) {
@@ -666,7 +663,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
} }
@Override @Override
public void commit(IntentSender statusReceiver, boolean forTransfer) { public void commit(@NonNull IntentSender statusReceiver, boolean forTransfer) {
Preconditions.checkNotNull(statusReceiver); Preconditions.checkNotNull(statusReceiver);
// Cache package manager data without the lock held // Cache package manager data without the lock held
@@ -679,6 +676,10 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
assertCallerIsOwnerOrRootLocked(); assertCallerIsOwnerOrRootLocked();
assertPreparedAndNotDestroyedLocked("commit"); assertPreparedAndNotDestroyedLocked("commit");
final PackageInstallObserverAdapter adapter = new PackageInstallObserverAdapter(
mContext, statusReceiver, sessionId, isInstallerDeviceOwnerLocked(), userId);
mRemoteObserver = adapter.getBinder();
if (forTransfer) { if (forTransfer) {
mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, null); mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, null);
@@ -712,9 +713,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
mActiveCount.incrementAndGet(); mActiveCount.incrementAndGet();
mCommitted = true; mCommitted = true;
final PackageInstallObserverAdapter adapter = new PackageInstallObserverAdapter( mHandler.obtainMessage(MSG_COMMIT).sendToTarget();
mContext, statusReceiver, sessionId, isInstallerDeviceOwnerLocked(), userId);
mHandler.obtainMessage(MSG_COMMIT, adapter.getBinder()).sendToTarget();
} }
if (!wasSealed) { if (!wasSealed) {
@@ -1422,8 +1421,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
} }
private void dispatchSessionFinished(int returnCode, String msg, Bundle extras) { private void dispatchSessionFinished(int returnCode, String msg, Bundle extras) {
IPackageInstallObserver2 observer; final IPackageInstallObserver2 observer;
String packageName; final String packageName;
synchronized (mLock) { synchronized (mLock) {
mFinalStatus = returnCode; mFinalStatus = returnCode;
mFinalMessage = msg; mFinalMessage = msg;