Skip to content

Commit 2e0f7e2

Browse files
committed
Fix [grantWritePermission] and [persistablePermission] when calling [openDocumentTree] and [openDocument]
1 parent e8f5704 commit 2e0f7e2

1 file changed

Lines changed: 20 additions & 2 deletions

File tree

android/src/main/kotlin/io/alexrintt/sharedstorage/deprecated/DocumentFileApi.kt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,10 +296,22 @@ internal class DocumentFileApi(private val plugin: SharedStoragePlugin) :
296296
@RequiresApi(API_21)
297297
private fun openDocument(call: MethodCall, result: MethodChannel.Result) {
298298
val initialUri = call.argument<String>("initialUri")
299+
val grantWritePermission = call.argument<Boolean>("grantWritePermission")!!
300+
val persistablePermission =
301+
call.argument<Boolean>("persistablePermission")!!
299302

300303
val intent =
301304
Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
302305
addCategory(Intent.CATEGORY_OPENABLE)
306+
if (persistablePermission) {
307+
addFlags(
308+
Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
309+
)
310+
}
311+
addFlags(
312+
if (grantWritePermission) Intent.FLAG_GRANT_WRITE_URI_PERMISSION
313+
else Intent.FLAG_GRANT_READ_URI_PERMISSION
314+
)
303315

304316
if (initialUri != null) {
305317
val tree =
@@ -325,12 +337,18 @@ internal class DocumentFileApi(private val plugin: SharedStoragePlugin) :
325337

326338
@RequiresApi(API_21)
327339
private fun openDocumentTree(call: MethodCall, result: MethodChannel.Result) {
328-
val grantWritePermission = call.argument<Boolean>("grantWritePermission")!!
329-
330340
val initialUri = call.argument<String>("initialUri")
341+
val grantWritePermission = call.argument<Boolean>("grantWritePermission")!!
342+
val persistablePermission =
343+
call.argument<Boolean>("persistablePermission")!!
331344

332345
val intent =
333346
Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).apply {
347+
if (persistablePermission) {
348+
addFlags(
349+
Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
350+
)
351+
}
334352
addFlags(
335353
if (grantWritePermission) Intent.FLAG_GRANT_WRITE_URI_PERMISSION
336354
else Intent.FLAG_GRANT_READ_URI_PERMISSION

0 commit comments

Comments
 (0)