diff options
author | Dianne Hackborn <hackbod@google.com> | 2015-06-23 23:35:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-23 23:35:07 +0000 |
commit | d0e823048fd5c5ee21223fd299b2dbc6d3dba411 (patch) | |
tree | ad4d72d166e48d5aa84d33ea9a043f23db0f59a1 /src/com | |
parent | 4e834af0723231e3fad6f5ff7d52fa01806cd9b5 (diff) | |
parent | 61afdfb556e739256047635f35b8654890d435f1 (diff) | |
download | android_packages_apps_PackageInstaller-d0e823048fd5c5ee21223fd299b2dbc6d3dba411.tar.gz android_packages_apps_PackageInstaller-d0e823048fd5c5ee21223fd299b2dbc6d3dba411.tar.bz2 android_packages_apps_PackageInstaller-d0e823048fd5c5ee21223fd299b2dbc6d3dba411.zip |
Merge "Fix issue #21945272: Crash in Activity.dispatchRequestPermissionsResult" into mnc-dev
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 29000606..aa91b488 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -64,6 +64,8 @@ public class GrantPermissionsActivity extends Activity private GrantPermissionsViewHandler mViewHandler; private AppPermissions mAppPermissions; + boolean mResultSet; + @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -242,9 +244,9 @@ public class GrantPermissionsActivity extends Activity } @Override - public void onBackPressed() { - setResultAndFinish(); - super.onBackPressed(); + public void finish() { + setResultIfNeeded(RESULT_CANCELED); + super.finish(); } private int computePermissionGrantState(PackageInfo callingPackageInfo, @@ -306,12 +308,19 @@ public class GrantPermissionsActivity extends Activity } } + private void setResultIfNeeded(int resultCode) { + if (!mResultSet) { + mResultSet = true; + logRequestedPermissionGroups(); + Intent result = new Intent(PackageManager.ACTION_REQUEST_PERMISSIONS); + result.putExtra(PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES, mRequestedPermissions); + result.putExtra(PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS, mGrantResults); + setResult(resultCode, result); + } + } + private void setResultAndFinish() { - logRequestedPermissionGroups(); - Intent result = new Intent(PackageManager.ACTION_REQUEST_PERMISSIONS); - result.putExtra(PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES, mRequestedPermissions); - result.putExtra(PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS, mGrantResults); - setResult(RESULT_OK, result); + setResultIfNeeded(RESULT_OK); finish(); } |