summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2015-08-28 18:39:21 -0700
committerSvetoslav <svetoslavganov@google.com>2015-08-28 18:58:34 -0700
commitacd09293116133b6a86d348e011d8347a03266ec (patch)
tree41f3bd77399588fe06b77eae5a37a46e5a59fd01 /src/com/android/packageinstaller
parent2d03ddd5d73a16a63a3a3e6a412967183163ecee (diff)
downloadandroid_packages_apps_PackageInstaller-acd09293116133b6a86d348e011d8347a03266ec.tar.gz
android_packages_apps_PackageInstaller-acd09293116133b6a86d348e011d8347a03266ec.tar.bz2
android_packages_apps_PackageInstaller-acd09293116133b6a86d348e011d8347a03266ec.zip
Show location permission toggle for location provider
bug:23528665 Change-Id: Id3a0838c3421b56dcf47c86043bb51c670268d03
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 cf0d7c2f..aa0f77a6 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;
}