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 8609dc5..1b7863c 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 @@ -19,10 +19,10 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.InsertDriveFile import androidx.compose.material.icons.filled.CameraAlt import androidx.compose.material.icons.filled.Cancel import androidx.compose.material.icons.filled.Folder -import androidx.compose.material.icons.filled.InsertDriveFile import androidx.compose.material.icons.filled.Lock import androidx.compose.material.icons.filled.Mic import androidx.compose.material.icons.filled.PermMedia @@ -145,19 +145,29 @@ fun SaveFolderTile( var showDCIMFolderHelpSheet by remember { mutableStateOf(false) } if (showDCIMFolderHelpSheet) { - MediaFoldersExplanationDialog( + DCIMFolderExplanationDialog( onDismiss = { showDCIMFolderHelpSheet = false } ) } + var showExplanationDialog by remember { mutableStateOf(false) } + + if (showExplanationDialog) { + InternalFolderExplanationDialog( + onDismiss = { + showExplanationDialog = false + } + ) + } + SettingsTile( title = stringResource(R.string.ui_settings_option_saveFolder_title), description = stringResource(R.string.ui_settings_option_saveFolder_explanation), leading = { Icon( - Icons.Default.InsertDriveFile, + Icons.AutoMirrored.Filled.InsertDriveFile, contentDescription = null, ) }, @@ -203,7 +213,25 @@ fun SaveFolderTile( val openFolder = rememberOpenUri() when (settings.saveFolder) { - null -> {} + null -> { + Button( + onClick = { + showExplanationDialog = true + }, + shape = MaterialTheme.shapes.small, + contentPadding = ButtonDefaults.TextButtonContentPadding, + colors = ButtonDefaults.filledTonalButtonColors( + contentColor = MaterialTheme.colorScheme.onTertiaryContainer, + containerColor = MaterialTheme.colorScheme.tertiaryContainer, + ), + ) { + Text( + stringResource(R.string.ui_settings_option_saveFolder_explainMediaFolder_label), + fontSize = MaterialTheme.typography.bodySmall.fontSize, + ) + } + } + RECORDER_MEDIA_SELECTED_VALUE -> { Button( onClick = { @@ -256,12 +284,9 @@ fun SaveFolderTile( } @Composable -fun MediaFoldersExplanationDialog( +fun DCIMFolderExplanationDialog( onDismiss: () -> Unit, ) { - val context = LocalContext.current - val openFolder = rememberOpenUri() - AlertDialog( onDismissRequest = onDismiss, icon = { @@ -363,6 +388,42 @@ fun MediaFoldersExplanationDialog( ) } +@Composable +fun InternalFolderExplanationDialog( + onDismiss: () -> Unit, +) { + AlertDialog( + onDismissRequest = onDismiss, + icon = { + Icon( + Icons.Default.Lock, + contentDescription = null, + ) + }, + title = { + Text(stringResource(R.string.ui_settings_option_saveFolder_explainMediaFolder_label)) + }, + confirmButton = { + Button(onClick = onDismiss) { + Text(stringResource(R.string.dialog_close_neutral_label)) + } + }, + text = { + Column( + modifier = Modifier.fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(32.dp), + ) { + Text( + stringResource(R.string.ui_settings_option_saveFolder_explainInternalFolder_explanation), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurface, + ) + } + } + ) +} + @OptIn(ExperimentalMaterial3Api::class) @Composable fun SelectionSheet( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 30e14c1..f17128b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -182,10 +182,11 @@ File Manager app not found Alibi couldn\'t find a file manager app on your phone. Please install a file manager app and try again. If this message still appears, you can try using a custom batches folder in the advanced settings section. Alibi may not fully work on your device. Recording Video - Open Folder in Files + Open selected folder in file manager Where are my batches stored? To view your batches, open the Files app, go to the internal storage and then you will find your batches in following folders: The final merged recordings will be saved in those folders. Each recording creates a subfolder to store the short batches in (\"%s\" for audio recordings, \"%s\" for video recordings). To view the individual batches, you may need to enable hidden files in the Files app. Tap on a folder to open it in the Files app Unknown + To protect your privacy, Alibi stores its batches into its own private, encrypted storage. This storage is only accessible by Alibi and can\'t be accessed by other apps or by a possible intruder. Once you save the recording, you will be asked where you want to save the recording to. \ No newline at end of file