Merge "Import translations. DO NOT MERGE ANYWHERE" into sc-dev
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightAppPermGroup.kt b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightAppPermGroup.kt
index d1921be..3fb0960 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightAppPermGroup.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightAppPermGroup.kt
@@ -16,6 +16,8 @@
package com.android.permissioncontroller.permission.model.livedatatypes
+import android.Manifest
+import android.Manifest.permission.ACCESS_COARSE_LOCATION
import android.os.Build
import android.os.UserHandle
@@ -115,11 +117,14 @@
val supportsRuntimePerms = packageInfo.targetSdkVersion >= Build.VERSION_CODES.M
/**
- * Whether this App Permission Group contains any one-time permission and
- * none of the permissions are granted (not one-time)
+ * Whether this App Permission Group is one-time. 2 cases:
+ * 1. If the perm group is not LOCATION, check if any of the permissions is one-time.
+ * 2. If the perm group is LOCATION, check if ACCESS_COARSE_LOCATION is one-time.
*/
- val isOneTime = permissions.any { it.value.isOneTime } &&
- !permissions.any { !it.value.isOneTime && it.value.isGrantedIncludingAppOp }
+ val isOneTime = (permGroupName != Manifest.permission_group.LOCATION &&
+ permissions.any { it.value.isOneTime }) ||
+ (permGroupName == Manifest.permission_group.LOCATION &&
+ permissions[ACCESS_COARSE_LOCATION]?.isOneTime == true)
/**
* Whether any permissions in this group are granted by default (pregrant)