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