summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2015-06-23 23:35:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-23 23:35:07 +0000
commitd0e823048fd5c5ee21223fd299b2dbc6d3dba411 (patch)
treead4d72d166e48d5aa84d33ea9a043f23db0f59a1
parent4e834af0723231e3fad6f5ff7d52fa01806cd9b5 (diff)
parent61afdfb556e739256047635f35b8654890d435f1 (diff)
downloadandroid_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
-rw-r--r--src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java25
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();
}