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)