summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2015-08-31 20:11:00 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-08-31 20:11:00 +0000
commitf7fc063145df915b76c93945b2dd5e792d4cdd80 (patch)
tree7424e165bdc8a44fa0245610d244a83f493d35ca /src/com/android/packageinstaller
parent711f8a176cf8cd067deaa5b16cb38f66b20376b4 (diff)
parentacd09293116133b6a86d348e011d8347a03266ec (diff)
downloadandroid_packages_apps_PackageInstaller-f7fc063145df915b76c93945b2dd5e792d4cdd80.tar.gz
android_packages_apps_PackageInstaller-f7fc063145df915b76c93945b2dd5e792d4cdd80.tar.bz2
android_packages_apps_PackageInstaller-f7fc063145df915b76c93945b2dd5e792d4cdd80.zip
Merge "Show location permission toggle for location provider" into mnc-dev
Diffstat (limited to 'src/com/android/packageinstaller')
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissionGroup.java2
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java2
-rw-r--r--src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java4
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java14
-rw-r--r--src/com/android/packageinstaller/permission/utils/LocationUtils.java2
-rw-r--r--src/com/android/packageinstaller/permission/utils/Utils.java8
6 files changed, 23 insertions, 9 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
index 633336c3..9d65bcc0 100644
--- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
+++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
@@ -265,7 +265,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
}
public boolean areRuntimePermissionsGranted() {
- if (LocationUtils.isLocked(mName, mPackageInfo.packageName)) {
+ if (LocationUtils.isLocationGroupAndProvider(mName, mPackageInfo.packageName)) {
return LocationUtils.isLocationEnabled(mContext);
}
final int permissionCount = mPermissions.size();
diff --git a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
index 52fb874e..7bae18f3 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
@@ -75,7 +75,7 @@ public class PermissionStatusReceiver extends BroadcastReceiver {
int additionalCount = 0;
for (AppPermissionGroup group : appPermissions.getPermissionGroups()) {
- if (Utils.shouldShowPermission(group)) {
+ if (Utils.shouldShowPermission(group, pkg)) {
totalCount++;
if (group.areRuntimePermissionsGranted()) {
grantedCount++;
diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
index afa32341..6396c61e 100644
--- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
@@ -205,7 +205,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
extraPerms.setTitle(R.string.additional_permissions);
for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
- if (!Utils.shouldShowPermission(group)) {
+ if (!Utils.shouldShowPermission(group, mAppPermissions.getPackageInfo().packageName)) {
continue;
}
@@ -276,7 +276,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
addToggledGroup(group);
- if (LocationUtils.isLocked(group.getName(), group.getApp().packageName)) {
+ if (LocationUtils.isLocationGroupAndProvider(group.getName(), group.getApp().packageName)) {
LocationUtils.showLocationDialog(getContext(), mAppPermissions.getAppLabel());
return false;
}
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
index 2a5f7c7e..8dacd037 100644
--- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
@@ -219,6 +219,17 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple
}
if (existingPref != null) {
+ // If existing preference - only update its state.
+ if (app.isPolicyFixed()) {
+ existingPref.setSummary(getString(
+ R.string.permission_summary_enforced_by_policy));
+ }
+ existingPref.setPersistent(false);
+ existingPref.setEnabled(!app.isPolicyFixed());
+ if (existingPref instanceof SwitchPreference) {
+ ((SwitchPreference) existingPref)
+ .setChecked(app.areRuntimePermissionsGranted());
+ }
continue;
}
@@ -316,7 +327,8 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple
addToggledGroup(app.getPackageName(), app.getPermissionGroup());
- if (LocationUtils.isLocked(mPermissionApps.getGroupName(), app.getPackageName())) {
+ if (LocationUtils.isLocationGroupAndProvider(mPermissionApps.getGroupName(),
+ app.getPackageName())) {
LocationUtils.showLocationDialog(getContext(), app.getLabel());
return false;
}
diff --git a/src/com/android/packageinstaller/permission/utils/LocationUtils.java b/src/com/android/packageinstaller/permission/utils/LocationUtils.java
index 4c4ea6e3..512fcf44 100644
--- a/src/com/android/packageinstaller/permission/utils/LocationUtils.java
+++ b/src/com/android/packageinstaller/permission/utils/LocationUtils.java
@@ -70,7 +70,7 @@ public class LocationUtils {
Settings.Secure.LOCATION_MODE_OFF) != Settings.Secure.LOCATION_MODE_OFF;
}
- public static boolean isLocked(String groupName, String packageName) {
+ public static boolean isLocationGroupAndProvider(String groupName, String packageName) {
return LOCATION_PERMISSION.equals(groupName) && isNetworkLocationProvider(packageName);
}
diff --git a/src/com/android/packageinstaller/permission/utils/Utils.java b/src/com/android/packageinstaller/permission/utils/Utils.java
index 552d4ad4..7b9a2b65 100644
--- a/src/com/android/packageinstaller/permission/utils/Utils.java
+++ b/src/com/android/packageinstaller/permission/utils/Utils.java
@@ -76,10 +76,11 @@ public class Utils {
return false;
}
- public static boolean shouldShowPermission(AppPermissionGroup group) {
+ public static boolean shouldShowPermission(AppPermissionGroup group, String packageName) {
// We currently will not show permissions fixed by the system.
// which is what the system does for system components.
- if (group.isSystemFixed()) {
+ if (group.isSystemFixed() && !LocationUtils.isLocationGroupAndProvider(
+ group.getName(), packageName)) {
return false;
}
@@ -102,7 +103,8 @@ public class Utils {
public static boolean shouldShowPermission(PermissionApp app) {
// We currently will not show permissions fixed by the system
// which is what the system does for system components.
- if (app.isSystemFixed()) {
+ if (app.isSystemFixed() && !LocationUtils.isLocationGroupAndProvider(
+ app.getPermissionGroup().getName(), app.getPackageName())) {
return false;
}