Skip to content

Instantly share code, notes, and snippets.

@Kurante2801
Last active August 29, 2023 16:00
Show Gist options
  • Save Kurante2801/828596e27b43ede86a8267bc0885909b to your computer and use it in GitHub Desktop.
Save Kurante2801/828596e27b43ede86a8267bc0885909b to your computer and use it in GitHub Desktop.
/* inside activity class */
private val launcher = registerForActivityResult(OpenDocumentTreePersistent()) { uri: Uri? ->
if (uri != null)
contentResolver.takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
/* ... */
}
class OpenDocumentTreePersistent : OpenDocumentTree() {
override fun createIntent(context: Context, input: Uri?): Intent {
val intent = super.createIntent(context, input)
intent.addFlags(
Intent.FLAG_GRANT_READ_URI_PERMISSION
or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
or Intent.FLAG_GRANT_PREFIX_URI_PERMISSION
)
return intent
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment