diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/FolderBreadcrumbs.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/FolderBreadcrumbs.kt new file mode 100644 index 0000000..6681db6 --- /dev/null +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/FolderBreadcrumbs.kt @@ -0,0 +1,48 @@ +package app.myzel394.alibi.ui.components.SettingsScreen.atoms + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.width +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ChevronRight +import androidx.compose.material.icons.filled.Folder +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp + +@Composable +fun FolderBreadcrumbs( + modifier: Modifier = Modifier, + textStyle: TextStyle? = null, + folders: Iterable, +) { + Row( + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + folders.forEachIndexed { index, folder -> + if (index != 0) { + Icon( + imageVector = Icons.Default.ChevronRight, + contentDescription = null, + ) + } + Text( + text = folder, + modifier = Modifier + .then(modifier), + maxLines = 1, + overflow = TextOverflow.Ellipsis, + style = textStyle ?: MaterialTheme.typography.bodySmall, + textAlign = TextAlign.Center, + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/SaveFolderTile.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/SaveFolderTile.kt index 113b549..9676ecc 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/SaveFolderTile.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/SaveFolderTile.kt @@ -28,6 +28,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign @@ -156,12 +157,28 @@ fun SaveFolderTile( }, extra = { Column( + modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(8.dp), ) { if (settings.audioRecorderSettings.saveFolder != null) { + Text( + text = stringResource( + R.string.form_value_selected, + settings + .audioRecorderSettings + .saveFolder + .split(":")[1] + .replace("/", " > ") + ), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth(), + ) Button( colors = ButtonDefaults.filledTonalButtonColors(), + contentPadding = ButtonDefaults.ButtonWithIconContentPadding, onClick = { updateValue(null) } @@ -178,18 +195,18 @@ fun SaveFolderTile( text = stringResource(R.string.ui_settings_option_saveFolder_action_default_label), ) } + } else { + Text( + text = stringResource( + R.string.form_value_selected, + stringResource(R.string.ui_settings_option_saveFolder_defaultValue) + ), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth(), + ) } - Text( - text = stringResource( - R.string.form_value_selected, - settings.audioRecorderSettings.saveFolder - ?: stringResource(R.string.ui_settings_option_saveFolder_defaultValue) - ), - style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.onSurfaceVariant, - textAlign = TextAlign.Center, - modifier = Modifier.fillMaxWidth(), - ) } } )