diff options
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt index 24dc51bdf..2378909b9 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt @@ -516,8 +516,8 @@ class GrantPermissionsViewModel( // Show location permission dialogs based on location permissions val locationVisibilities = MutableList(NEXT_LOCATION_DIALOG) { false } - if (groupState.group.permGroupName == LOCATION && isLocationAccuracyEnabled() && - packageInfo.targetSdkVersion >= Build.VERSION_CODES.S) { + if (groupState.group.permGroupName == LOCATION && + isLocationAccuracyEnabledForApp(groupState.group)) { if (needFgPermissions) { locationVisibilities[LOCATION_ACCURACY_LAYOUT] = true if (fgState != null && @@ -764,7 +764,7 @@ class GrantPermissionsViewModel( // Skip showing groups that we know cannot be granted. return false } else if (subGroup.isUserFixed) { - if (perm == ACCESS_COARSE_LOCATION) { + if (perm == ACCESS_COARSE_LOCATION && isLocationAccuracyEnabledForApp(group)) { val coarsePerm = group.permissions[perm] if (coarsePerm != null && !coarsePerm.isUserFixed) { // If the location group is user fixed but ACCESS_COARSE_LOCATION is not, then @@ -868,7 +868,7 @@ class GrantPermissionsViewModel( private fun canAutoGrantWholeGroup(group: LightAppPermGroup): Boolean { // If FINE location is not granted, do not grant it automatically when COARSE // location is already granted. - if (group.permGroupName == LOCATION && + if (group.permGroupName == LOCATION && isLocationAccuracyEnabledForApp(group) && group.allPermissions[ACCESS_FINE_LOCATION]?.isGrantedIncludingAppOp == false) { return false } @@ -1473,6 +1473,11 @@ class GrantPermissionsViewModel( } } + private fun isLocationAccuracyEnabledForApp(group: LightAppPermGroup): Boolean { + return isLocationAccuracyEnabled() && + group.packageInfo.targetSdkVersion >= Build.VERSION_CODES.S + } + /** * Log all permission groups which were requested */ |