feat: Improve SaveFolderTile folder preview

This commit is contained in:
Myzel394 2023-10-30 14:20:41 +01:00
parent aa8fd2a37f
commit 542170f189
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
2 changed files with 76 additions and 11 deletions

View File

@ -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<String>,
) {
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,
)
}
}
}

View File

@ -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(),
)
}
}
)