Skip to content

Commit 7e77cae

Browse files
authored
fix(ContextExtension): update permissions handling for Android Q and above (fix #337) (#338)
Refactored the permissions check logic to correctly handle scoped storage for devices running Android Q and later. Removed redundant code and ensured proper invocation of permission grants. # GENERATE BY https://aicommit.app
1 parent b5c9148 commit 7e77cae

3 files changed

Lines changed: 6 additions & 7 deletions

File tree

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<uses-permission
66
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
7-
android:maxSdkVersion="28" />
7+
tools:ignore="ScopedStorage" />
88
<uses-permission
99
android:name="android.permission.READ_EXTERNAL_STORAGE"
1010
android:maxSdkVersion="32" />

app/src/main/java/me/rosuh/easywatermark/utils/ktx/ContextExtension.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,11 @@ fun Activity.checkWritingPermission(
4646
},
4747
grant: () -> Unit,
4848
) {
49-
val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
50-
Manifest.permission.READ_MEDIA_IMAGES
51-
} else {
52-
Manifest.permission.WRITE_EXTERNAL_STORAGE
49+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
50+
grant.invoke()
51+
return
5352
}
54-
preCheckStoragePermission(activityResultLauncher, permissions, failed, grant)
53+
preCheckStoragePermission(activityResultLauncher, Manifest.permission.WRITE_EXTERNAL_STORAGE, failed, grant)
5554
}
5655

5756
fun Activity.preCheckStoragePermission(

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ android.nonFinalResIds=false
3131

3232
majorVersion=2
3333
minorVersion=9
34-
patchVersion=3
34+
patchVersion=4

0 commit comments

Comments
 (0)