summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-05-14 15:13:27 -0400
committerJason Monk <jmonk@google.com>2015-05-15 11:38:18 -0400
commitd7f8200201563ca300572e2b56100acfd010140d (patch)
tree69ffa9d9210e8fd7f51ac3c9318895615e5bfff7 /src
parent58964d3525d8b35618cb857e7406ccec6f35a27a (diff)
downloadandroid_packages_apps_PackageInstaller-d7f8200201563ca300572e2b56100acfd010140d.tar.gz
android_packages_apps_PackageInstaller-d7f8200201563ca300572e2b56100acfd010140d.tar.bz2
android_packages_apps_PackageInstaller-d7f8200201563ca300572e2b56100acfd010140d.zip
Apply same warning dialog to PermissionAppsFragment
Also fix old warning dialog to only show when needed. Bug: 21154909 Change-Id: Ibac1f39e8ae034ffc82450aedd2e30a5af28eb31
Diffstat (limited to 'src')
-rw-r--r--src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java2
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java27
2 files changed, 25 insertions, 4 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
index f0e8dba4..e1dd85a6 100644
--- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
@@ -240,7 +240,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
if (newValue == Boolean.TRUE) {
group.grantRuntimePermissions(false);
} else {
- if (group.hasAppOpPermission() && !mHasConfirmedRevoke) {
+ if (!group.hasRuntimePermission() && !mHasConfirmedRevoke) {
new AlertDialog.Builder(getContext())
.setMessage(R.string.old_sdk_deny_warning)
.setNegativeButton(R.string.cancel, null)
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
index b8ae369d..d1d7c87e 100644
--- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
@@ -17,7 +17,10 @@ package com.android.packageinstaller.permission.ui;
import android.annotation.Nullable;
import android.app.ActionBar;
+import android.app.AlertDialog;
import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -57,6 +60,7 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements
private PermissionApps mPermissionApps;
private ArrayMap<String, PermissionGroup> mToggledGroups;
+ private boolean mHasConfirmedRevoke;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -168,9 +172,9 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements
}
@Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
+ public boolean onPreferenceChange(final Preference preference, Object newValue) {
String pkg = preference.getKey();
- PermissionApp app = mPermissionApps.getApp(pkg);
+ final PermissionApp app = mPermissionApps.getApp(pkg);
addToggledGroup(app.getPackageName(), app.getPermissionGroup());
@@ -180,7 +184,24 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements
if (newValue == Boolean.TRUE) {
app.grantRuntimePermissions();
} else {
- app.revokeRuntimePermissions();
+ if (!app.hasRuntimePermissions() && !mHasConfirmedRevoke) {
+ new AlertDialog.Builder(getContext())
+ .setMessage(R.string.old_sdk_deny_warning)
+ .setNegativeButton(R.string.cancel, null)
+ .setPositiveButton(R.string.grant_dialog_button_deny,
+ new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ ((SwitchPreference) preference).setChecked(false);
+ app.revokeRuntimePermissions();
+ mHasConfirmedRevoke = true;
+ }
+ })
+ .show();
+ return false;
+ } else {
+ app.revokeRuntimePermissions();
+ }
}
return true;
}