summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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();
}