From eb61437f34e299ae949dd3dadd65e772b69cff2d Mon Sep 17 00:00:00 2001 From: David Madl Date: Sun, 24 May 2026 06:37:46 +0200 Subject: [PATCH] feat: update folder selection to use SafInitialUris for improved document access --- .../lockstep/player/ui/pairing/PairingScreen.kt | 3 ++- .../at/lockstep/player/util/SafInitialUris.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/at/lockstep/player/util/SafInitialUris.kt diff --git a/app/src/main/java/at/lockstep/player/ui/pairing/PairingScreen.kt b/app/src/main/java/at/lockstep/player/ui/pairing/PairingScreen.kt index 2b459df..9367f4e 100644 --- a/app/src/main/java/at/lockstep/player/ui/pairing/PairingScreen.kt +++ b/app/src/main/java/at/lockstep/player/ui/pairing/PairingScreen.kt @@ -37,6 +37,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import at.lockstep.jukebox.db.TrackRow import at.lockstep.player.LockstepViewModel import at.lockstep.player.R +import at.lockstep.player.util.SafInitialUris @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -149,7 +150,7 @@ fun PairingScreen( ) { item { Button( - onClick = { openTree.launch(null) }, + onClick = { openTree.launch(SafInitialUris.internalDocuments()) }, modifier = Modifier.fillMaxWidth(), ) { Text(context.getString(R.string.pairing_choose_folder)) diff --git a/app/src/main/java/at/lockstep/player/util/SafInitialUris.kt b/app/src/main/java/at/lockstep/player/util/SafInitialUris.kt new file mode 100644 index 0000000..11b2e21 --- /dev/null +++ b/app/src/main/java/at/lockstep/player/util/SafInitialUris.kt @@ -0,0 +1,15 @@ +package at.lockstep.player.util + +import android.net.Uri +import android.provider.DocumentsContract + +object SafInitialUris { + private const val EXTERNAL_STORAGE_AUTHORITY = "com.android.externalstorage.documents" + + /** Internal-storage Documents — avoids the blocked volume root shown on Pixel devices. */ + fun internalDocuments(): Uri = + DocumentsContract.buildDocumentUri( + EXTERNAL_STORAGE_AUTHORITY, + "primary:Documents", + ) +}