summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-07-06 15:53:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-06 15:53:22 +0000
commit85c09f356c52c710c47ba69608757964fc7db46d (patch)
treeff4288bb2c869cf4f59a683849c1670814f9002b /src
parent8b22848e736ed37f7359f9296d6968be057669ed (diff)
parent724784b6b90f3d844e807dea1a95c687d592ea27 (diff)
downloadandroid_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')
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissionGroup.java12
-rw-r--r--src/com/android/packageinstaller/permission/model/Permission.java4
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionApps.java4
-rw-r--r--src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java8
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java8
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;
}
}