From 3cef088d126c219d6304d9d6614a1da4805dff01 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Tue, 16 Aug 2022 12:31:36 -0600 Subject: [PATCH] music: switch to new storage perms Switch to the new READ_AUDIO_STORAGE permission for Android 13. --- app/src/main/AndroidManifest.xml | 4 +++- .../main/java/org/oxycblt/auxio/home/HomeFragment.kt | 4 +--- .../java/org/oxycblt/auxio/music/system/Indexer.kt | 10 +++++++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 55db4d0bb..5393cbd0e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,9 @@ - + + + diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt index eb68194b0..c00163b2c 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt @@ -17,7 +17,6 @@ package org.oxycblt.auxio.home -import android.Manifest import android.os.Bundle import android.view.LayoutInflater import android.view.MenuItem @@ -325,8 +324,7 @@ class HomeFragment : ViewBindingFragment(), Toolbar.OnMenuI visibility = View.VISIBLE text = context.getString(R.string.lbl_grant) setOnClickListener { - storagePermissionLauncher.launch( - Manifest.permission.READ_EXTERNAL_STORAGE) + storagePermissionLauncher.launch(Indexer.PERMISSION_READ_AUDIO) } } } diff --git a/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt b/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt index 452417b9b..b369bd2c3 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/system/Indexer.kt @@ -132,7 +132,7 @@ class Indexer { val handle = guard.newHandle() val notGranted = - ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) == + ContextCompat.checkSelfPermission(context, PERMISSION_READ_AUDIO) == PackageManager.PERMISSION_DENIED if (notGranted) { @@ -462,6 +462,14 @@ class Indexer { companion object { @Volatile private var INSTANCE: Indexer? = null + val PERMISSION_READ_AUDIO = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + // READ_EXTERNAL_STORAGE was superseded by READ_MEDIA_AUDIO in Android 13 + Manifest.permission.READ_MEDIA_AUDIO + } else { + Manifest.permission.READ_EXTERNAL_STORAGE + } + /** Get the process-level instance of [Indexer]. */ fun getInstance(): Indexer { val currentInstance = INSTANCE