Merge "Save observer in call to commit" into oc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
20c2641ad4
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user