Skip to content

Commit a00a2a6

Browse files
committed
Don't request granted permissions
1 parent 9adfc50 commit a00a2a6

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

app/src/main/java/com/kylecorry/trailsensecore/infrastructure/system/PermissionUtils.kt

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,20 @@ object PermissionUtils {
3030
}
3131

3232
fun requestPermissions(activity: Activity, permissions: List<String>, requestCode: Int) {
33-
if (permissions.isEmpty()) {
33+
val notGrantedPermissions = permissions.filterNot { hasPermission(activity, it) }
34+
if (notGrantedPermissions.isEmpty()) {
3435
activity.onRequestPermissionsResult(
3536
requestCode,
3637
permissions.toTypedArray(),
37-
intArrayOf()
38+
intArrayOf(PackageManager.PERMISSION_GRANTED)
3839
)
3940
return
4041
}
41-
ActivityCompat.requestPermissions(activity, permissions.toTypedArray(), requestCode)
42+
ActivityCompat.requestPermissions(
43+
activity,
44+
notGrantedPermissions.toTypedArray(),
45+
requestCode
46+
)
4247
}
4348

4449
fun requestPermissionsWithRationale(
@@ -49,6 +54,15 @@ object PermissionUtils {
4954
buttonGrant: String,
5055
buttonDeny: String
5156
) {
57+
val notGrantedPermissions = permissions.filterNot { hasPermission(activity, it) }
58+
if (notGrantedPermissions.isEmpty()) {
59+
activity.onRequestPermissionsResult(
60+
requestCode,
61+
permissions.toTypedArray(),
62+
intArrayOf(PackageManager.PERMISSION_GRANTED)
63+
)
64+
return
65+
}
5266
UiUtils.alertWithCancel(
5367
activity,
5468
rationale.title,
@@ -57,11 +71,11 @@ object PermissionUtils {
5771
buttonDeny
5872
) { cancelled ->
5973
if (!cancelled) {
60-
requestPermissions(activity, permissions, requestCode)
74+
requestPermissions(activity, notGrantedPermissions, requestCode)
6175
} else {
6276
activity.onRequestPermissionsResult(
6377
requestCode,
64-
permissions.toTypedArray(),
78+
notGrantedPermissions.toTypedArray(),
6579
intArrayOf(PackageManager.PERMISSION_DENIED)
6680
)
6781
}

0 commit comments

Comments
 (0)