Merge "Proper handling of unrecoverable status." into rvc-dev am: c7b99da139 am: e61c4a0384 am: 5ed4395bb2

Change-Id: Ib976f7efa1c03a471eaf177500419192dee59354
This commit is contained in:
TreeHugger Robot
2020-04-27 16:07:42 +00:00
committed by Automerger Merge Worker

View File

@@ -1488,6 +1488,10 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
} }
private void onDataLoaderUnrecoverable() { private void onDataLoaderUnrecoverable() {
if (TextUtils.isEmpty(mPackageName)) {
// The package has not been installed.
return;
}
final PackageManagerService packageManagerService = mPm; final PackageManagerService packageManagerService = mPm;
final String packageName = mPackageName; final String packageName = mPackageName;
mHandler.post(() -> { mHandler.post(() -> {
@@ -2610,12 +2614,14 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
case IDataLoaderStatusListener.DATA_LOADER_STOPPED: case IDataLoaderStatusListener.DATA_LOADER_STOPPED:
case IDataLoaderStatusListener.DATA_LOADER_DESTROYED: case IDataLoaderStatusListener.DATA_LOADER_DESTROYED:
return; return;
}
if (mDestroyed || mDataLoaderFinished) {
switch (status) {
case IDataLoaderStatusListener.DATA_LOADER_UNRECOVERABLE: case IDataLoaderStatusListener.DATA_LOADER_UNRECOVERABLE:
onDataLoaderUnrecoverable(); onDataLoaderUnrecoverable();
return; return;
} }
if (mDestroyed || mDataLoaderFinished) {
return; return;
} }
@@ -2678,6 +2684,12 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
} }
break; break;
} }
case IDataLoaderStatusListener.DATA_LOADER_UNRECOVERABLE:
mDataLoaderFinished = true;
onSessionVerificationFailure(
new PackageManagerException(INSTALL_FAILED_MEDIA_UNAVAILABLE,
"DataLoader reported unrecoverable failure."));
return;
} }
} catch (RemoteException e) { } catch (RemoteException e) {
// In case of streaming failure we don't want to fail or commit the session. // In case of streaming failure we don't want to fail or commit the session.