From c8aa26e2d93f86ce50b7bffb24676076ad0c1669 Mon Sep 17 00:00:00 2001 From: tom5079 Date: Sun, 27 Dec 2020 19:36:23 +0900 Subject: [PATCH] SAF --- app/src/main/java/xyz/quaver/pupil/Pupil.kt | 1 + .../ui/dialog/DownloadLocationDialogFragment.kt | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/xyz/quaver/pupil/Pupil.kt b/app/src/main/java/xyz/quaver/pupil/Pupil.kt index 815366ae..7e4e1f57 100644 --- a/app/src/main/java/xyz/quaver/pupil/Pupil.kt +++ b/app/src/main/java/xyz/quaver/pupil/Pupil.kt @@ -26,6 +26,7 @@ import android.content.Context import android.content.Intent import android.net.Uri import android.os.Build +import android.util.Log import androidx.appcompat.app.AppCompatDelegate import androidx.core.content.ContextCompat import androidx.preference.PreferenceManager diff --git a/app/src/main/java/xyz/quaver/pupil/ui/dialog/DownloadLocationDialogFragment.kt b/app/src/main/java/xyz/quaver/pupil/ui/dialog/DownloadLocationDialogFragment.kt index c3ffa33a..b6200576 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/dialog/DownloadLocationDialogFragment.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/dialog/DownloadLocationDialogFragment.kt @@ -50,14 +50,11 @@ class DownloadLocationDialogFragment : DialogFragment() { private val requestDownloadFolderLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == Activity.RESULT_OK) { - val activity = activity ?: return@registerForActivityResult val context = context ?: return@registerForActivityResult val dialog = dialog ?: return@registerForActivityResult - it.data?.data?.also { uri -> - val takeFlags: Int = - activity.intent.flags and - (Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION) + it.data?.data?.let { uri -> + val takeFlags: Int = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) context.contentResolver.takePersistableUriPermission(uri, takeFlags) @@ -143,7 +140,11 @@ class DownloadLocationDialogFragment : DialogFragment() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).apply { - flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION + addFlags( + Intent.FLAG_GRANT_READ_URI_PERMISSION + or Intent.FLAG_GRANT_WRITE_URI_PERMISSION + or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION + ) putExtra("android.content.extra.SHOW_ADVANCED", true) }