summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-10-10 09:11:45 -0600
committerLinux Build Service Account <lnxbuild@localhost>2016-10-10 09:11:45 -0600
commitebcfa18461cf6280c09ba119102e039761b3330d (patch)
tree1300783361b8cd7dd87efe6591e2f5d957065ea6
parent8ef15c53f325badc31abee4e08cf8f6301606005 (diff)
parent55007fdac04f2e1e492ed7fbf6bc839c931fd8d4 (diff)
downloadandroid_packages_apps_PackageInstaller-ebcfa18461cf6280c09ba119102e039761b3330d.tar.gz
android_packages_apps_PackageInstaller-ebcfa18461cf6280c09ba119102e039761b3330d.tar.bz2
android_packages_apps_PackageInstaller-ebcfa18461cf6280c09ba119102e039761b3330d.zip
Merge 55007fdac04f2e1e492ed7fbf6bc839c931fd8d4 on remote branch
Change-Id: I03ba6cd68b9dca9e6dc4b4e1a24ee5625cca6e25
-rwxr-xr-xsrc/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java32
1 files changed, 24 insertions, 8 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java
index 67c51bf8..f4e59625 100755
--- a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java
@@ -332,18 +332,34 @@ public final class AppPermissionsFragment extends SettingsWithHeader
PermissionInfo permInfo = pm.getPermissionInfo(key, 0);
final AppPermissionGroup title_group
= mAppPermissions.getPermissionGroup(permInfo.group);
+ final boolean grantedByDefault = title_group.hasGrantedByDefaultPermission();
+ PreferenceScreen screen = getPreferenceScreen();
+ Preference group_preference = screen.findPreference((CharSequence) permInfo.group);
+ AppPermissionGroup permissionGroup = getPermisssionGroup(permInfo.group);
if (newValue == Boolean.TRUE) {
+ ((SwitchPreference)preference).setChecked(true);
title_group.grantRuntimePermissions(false, filterPermissions);
+ ((SwitchPreference) group_preference).setChecked(
+ permissionGroup.areRuntimePermissionsGranted());
} else {
- title_group.revokeRuntimePermissions(false, filterPermissions);
+ //When the permission is off, the application maybe will crash, so need to
+ //add a warning dialog when the user revoke the permission.
+ new AlertDialog.Builder(getContext())
+ .setMessage(grantedByDefault ? R.string.system_warning
+ : R.string.old_sdk_deny_warning)
+ .setNegativeButton(R.string.cancel, null)
+ .setPositiveButton(R.string.grant_dialog_button_deny_anyway,
+ new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ ((SwitchPreference) preference).setChecked(false);
+ title_group.revokeRuntimePermissions(false, filterPermissions);
+ ((SwitchPreference) group_preference).setChecked(
+ permissionGroup.areRuntimePermissionsGranted());
+ }
+ })
+ .show();
}
- //group preferene update
- PreferenceScreen screen = getPreferenceScreen();
- Preference group_preference = screen.findPreference((CharSequence) permInfo.group);
- AppPermissionGroup permissionGroup = getPermisssionGroup(permInfo.group);
- ((SwitchPreference) group_preference).setChecked(
- permissionGroup.areRuntimePermissionsGranted());
- ((SwitchPreference)preference).setChecked(permissionGroup.areRuntimePermissionsGranted(filterPermissions));
} catch (NameNotFoundException e) {
Log.e(LOG_TAG, "Problem getting package info for ", e);
}