From e8df9fbc2801cc35a8c2e583041bcdfb93c69f2a Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:43:23 +0100 Subject: [PATCH] fix: Improve save folder --- .../main/java/app/myzel394/alibi/db/AppSettings.kt | 11 +++++++++++ .../components/SettingsScreen/Tiles/SaveFolderTile.kt | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt b/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt index 25783be..1f45583 100644 --- a/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt +++ b/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt @@ -1,5 +1,6 @@ package app.myzel394.alibi.db +import android.Manifest import android.content.Context import android.media.MediaRecorder import android.os.Build @@ -8,6 +9,9 @@ import androidx.camera.video.QualitySelector import app.myzel394.alibi.R import app.myzel394.alibi.helpers.AudioBatchesFolder import app.myzel394.alibi.helpers.VideoBatchesFolder +import app.myzel394.alibi.ui.RECORDER_MEDIA_SELECTED_VALUE +import app.myzel394.alibi.ui.SUPPORTS_SCOPED_STORAGE +import app.myzel394.alibi.ui.utils.PermissionHelper import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import java.time.LocalDateTime @@ -102,6 +106,13 @@ data class AppSettings( // To disable biometric authentication, set the instance to null. fun isAppLockEnabled() = appLockSettings != null + fun requiresExternalStoragePermission(context: Context): Boolean { + return !SUPPORTS_SCOPED_STORAGE && (saveFolder == RECORDER_MEDIA_SELECTED_VALUE && !PermissionHelper.hasGranted( + context, + Manifest.permission.WRITE_EXTERNAL_STORAGE + )) + } + enum class Theme { SYSTEM, LIGHT, diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/SaveFolderTile.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/SaveFolderTile.kt index 7b89765..62229f2 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/SaveFolderTile.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/Tiles/SaveFolderTile.kt @@ -94,6 +94,7 @@ fun SaveFolderTile( } scope.launch { + println("================= Saving saveFolder: $path") dataStore.updateData { it.setSaveFolder(path) } @@ -390,7 +391,7 @@ fun ExternalPermissionRequiredDialog( AlertDialog( icon = { Icon( - Icons.Default.Warning, + Icons.Default.PermMedia, contentDescription = null, ) },