diff options
author | Christopher Tate <ctate@google.com> | 2015-03-11 00:25:25 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-03-11 00:25:26 +0000 |
commit | 45214cae6b98967d4cbfba0a4cbb4710928b8dcb (patch) | |
tree | 9ff00c49746b57d6cd047cb1b5e15e6a62ea9cb5 | |
parent | ada7b48ee23ceaec45f1df3845e31bba1518632e (diff) | |
parent | 72d0d86c65a6e02e17332cf9a55675e893087645 (diff) | |
download | android_packages_apps_PackageInstaller-45214cae6b98967d4cbfba0a4cbb4710928b8dcb.tar.gz android_packages_apps_PackageInstaller-45214cae6b98967d4cbfba0a4cbb4710928b8dcb.tar.bz2 android_packages_apps_PackageInstaller-45214cae6b98967d4cbfba0a4cbb4710928b8dcb.zip |
Merge "Don't crash when cancelling an uninstall of a nonexistent package"
-rwxr-xr-x | src/com/android/packageinstaller/UninstallerActivity.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/com/android/packageinstaller/UninstallerActivity.java b/src/com/android/packageinstaller/UninstallerActivity.java index 96bc9937..e277d48f 100755 --- a/src/com/android/packageinstaller/UninstallerActivity.java +++ b/src/com/android/packageinstaller/UninstallerActivity.java @@ -141,6 +141,7 @@ public class UninstallerActivity extends Activity { IBinder callback; } + private String mPackageName; private DialogInfo mDialogInfo; @Override @@ -156,8 +157,8 @@ public class UninstallerActivity extends Activity { showAppNotFound(); return; } - final String packageName = packageUri.getEncodedSchemeSpecificPart(); - if (packageName == null) { + mPackageName = packageUri.getEncodedSchemeSpecificPart(); + if (mPackageName == null) { Log.e(TAG, "Invalid package name in URI: " + packageUri); showAppNotFound(); return; @@ -177,14 +178,14 @@ public class UninstallerActivity extends Activity { mDialogInfo.callback = intent.getIBinderExtra(PackageInstaller.EXTRA_CALLBACK); try { - mDialogInfo.appInfo = pm.getApplicationInfo(packageName, + mDialogInfo.appInfo = pm.getApplicationInfo(mPackageName, PackageManager.GET_UNINSTALLED_PACKAGES, mDialogInfo.user.getIdentifier()); } catch (RemoteException e) { Log.e(TAG, "Unable to get packageName. Package manager is dead?"); } if (mDialogInfo.appInfo == null) { - Log.e(TAG, "Invalid packageName: " + packageName); + Log.e(TAG, "Invalid packageName: " + mPackageName); showAppNotFound(); return; } @@ -194,7 +195,7 @@ public class UninstallerActivity extends Activity { if (className != null) { try { mDialogInfo.activityInfo = pm.getActivityInfo( - new ComponentName(packageName, className), 0, + new ComponentName(mPackageName, className), 0, mDialogInfo.user.getIdentifier()); } catch (RemoteException e) { Log.e(TAG, "Unable to get className. Package manager is dead?"); @@ -241,7 +242,7 @@ public class UninstallerActivity extends Activity { final IPackageDeleteObserver2 observer = IPackageDeleteObserver2.Stub.asInterface( mDialogInfo.callback); try { - observer.onPackageDeleted(mDialogInfo.appInfo.packageName, + observer.onPackageDeleted(mPackageName, PackageManager.DELETE_FAILED_ABORTED, "Cancelled by user"); } catch (RemoteException ignored) { } |