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