Merge "Save observer in call to commit" into oc-mr1-dev
am: 20c2641ad4
Change-Id: Ie4917755c4936d8afc876aeb60fda4ee225fadb4
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user