summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-09-24 00:46:54 -0600
committerLinux Build Service Account <lnxbuild@localhost>2016-09-24 00:46:54 -0600
commit55007fdac04f2e1e492ed7fbf6bc839c931fd8d4 (patch)
tree1300783361b8cd7dd87efe6591e2f5d957065ea6
parent7d83a5dc0a7721378193845d4fba0dc54d186707 (diff)
parentb787f076e6cb038717af62f1b6a7b55620dfd626 (diff)
downloadandroid_packages_apps_PackageInstaller-55007fdac04f2e1e492ed7fbf6bc839c931fd8d4.tar.gz
android_packages_apps_PackageInstaller-55007fdac04f2e1e492ed7fbf6bc839c931fd8d4.tar.bz2
android_packages_apps_PackageInstaller-55007fdac04f2e1e492ed7fbf6bc839c931fd8d4.zip
Promotion of android-framework.lnx.2.0-00010.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 1068254 I157a4b0aab0e8d4f9719b4ff4d68f7eb11922ec3 Add dialog when revoke one permission Change-Id: Ibedae37883c76ee28402058a4a425e0b1e7ac1fe CRs-Fixed: 1068254
-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);
}