diff options
author | Svet Ganov <svetoslavganov@google.com> | 2015-07-06 15:53:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-06 15:53:22 +0000 |
commit | 85c09f356c52c710c47ba69608757964fc7db46d (patch) | |
tree | ff4288bb2c869cf4f59a683849c1670814f9002b /src/com/android/packageinstaller | |
parent | 8b22848e736ed37f7359f9296d6968be057669ed (diff) | |
parent | 724784b6b90f3d844e807dea1a95c687d592ea27 (diff) | |
download | android_packages_apps_PackageInstaller-85c09f356c52c710c47ba69608757964fc7db46d.tar.gz android_packages_apps_PackageInstaller-85c09f356c52c710c47ba69608757964fc7db46d.tar.bz2 android_packages_apps_PackageInstaller-85c09f356c52c710c47ba69608757964fc7db46d.zip |
Merge "Show basic feature warning for default granted permissions" into mnc-dev
Diffstat (limited to 'src/com/android/packageinstaller')
5 files changed, 28 insertions, 8 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java index 59130c44..8e86678d 100644 --- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java +++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java @@ -207,6 +207,18 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return mAppSupportsRuntimePermissions; } + + public boolean hasGrantedByDefaultPermission() { + final int permissionCount = mPermissions.size(); + for (int i = 0; i < permissionCount; i++) { + Permission permission = mPermissions.valueAt(i); + if (permission.isGrantedByDefault()) { + return true; + } + } + return false; + } + public boolean hasAppOpPermission() { final int permissionCount = mPermissions.size(); for (int i = 0; i < permissionCount; i++) { diff --git a/src/com/android/packageinstaller/permission/model/Permission.java b/src/com/android/packageinstaller/permission/model/Permission.java index da234bdb..1be4e75b 100644 --- a/src/com/android/packageinstaller/permission/model/Permission.java +++ b/src/com/android/packageinstaller/permission/model/Permission.java @@ -88,6 +88,10 @@ public final class Permission { return (mFlags & PackageManager.FLAG_PERMISSION_USER_SET) != 0; } + public boolean isGrantedByDefault() { + return (mFlags & PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0; + } + public void setUserSet(boolean userSet) { if (userSet) { mFlags |= PackageManager.FLAG_PERMISSION_USER_SET; diff --git a/src/com/android/packageinstaller/permission/model/PermissionApps.java b/src/com/android/packageinstaller/permission/model/PermissionApps.java index b8ba650d..9c76f211 100644 --- a/src/com/android/packageinstaller/permission/model/PermissionApps.java +++ b/src/com/android/packageinstaller/permission/model/PermissionApps.java @@ -319,6 +319,10 @@ public class PermissionApps { return mAppPermissionGroup.isSystemFixed(); } + public boolean hasGrantedByDefaultPermissions() { + return mAppPermissionGroup.hasGrantedByDefaultPermission(); + } + public boolean hasRuntimePermissions() { return mAppPermissionGroup.hasRuntimePermission(); } diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java index 39f4cbaf..483f6ba7 100644 --- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java @@ -264,10 +264,10 @@ public final class AppPermissionsFragment extends SettingsWithHeader if (newValue == Boolean.TRUE) { group.grantRuntimePermissions(false); } else { - final boolean system = group.getApp().applicationInfo.isSystemApp(); - if (system || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) { + final boolean grantedByDefault = group.hasGrantedByDefaultPermission(); + if (grantedByDefault || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) { new AlertDialog.Builder(getContext()) - .setMessage(system ? R.string.system_warning + .setMessage(grantedByDefault ? R.string.system_warning : R.string.old_sdk_deny_warning) .setNegativeButton(R.string.cancel, null) .setPositiveButton(R.string.grant_dialog_button_deny, @@ -276,7 +276,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader public void onClick(DialogInterface dialog, int which) { ((SwitchPreference) preference).setChecked(false); group.revokeRuntimePermissions(false); - if (!system) { + if (!grantedByDefault) { mHasConfirmedRevoke = true; } } diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java index f749089b..cb818cfb 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java @@ -214,10 +214,10 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple if (newValue == Boolean.TRUE) { app.grantRuntimePermissions(); } else { - final boolean system = app.getAppInfo().isSystemApp(); - if (system || (!app.hasRuntimePermissions() && !mHasConfirmedRevoke)) { + final boolean grantedByDefault = app.hasGrantedByDefaultPermissions(); + if (grantedByDefault || (!app.hasRuntimePermissions() && !mHasConfirmedRevoke)) { new AlertDialog.Builder(getContext()) - .setMessage(system ? R.string.system_warning + .setMessage(grantedByDefault ? R.string.system_warning : R.string.old_sdk_deny_warning) .setNegativeButton(R.string.cancel, null) .setPositiveButton(R.string.grant_dialog_button_deny, @@ -226,7 +226,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple public void onClick(DialogInterface dialog, int which) { ((SwitchPreference) preference).setChecked(false); app.revokeRuntimePermissions(); - if (!system) { + if (!grantedByDefault) { mHasConfirmedRevoke = true; } } |