Use labeled icons for Android settings section tabs
This commit is contained in:
1 parent
9f59e0968e
commit
bd453311ac
1 file changed
+13
-4
@@ -111,7 +111,9 @@ fun SettingsScreen(vm: ChatViewModel, onBack: () -> Unit, onExit: () -> Unit = {
|
||||
var applyFailed by remember { mutableStateOf(false) }
|
||||
|
||||
var tabIndex by rememberSaveable { mutableStateOf(0) }
|
||||
val tabs = listOf(R.string.settings, R.string.audio, R.string.storage, R.string.radio, R.string.broadcast, R.string.dev, R.string.bluetooth)
|
||||
val tabs = listOf(R.string.settings to Icons.Default.Settings, R.string.audio to Icons.Default.VolumeUp,
|
||||
R.string.storage to Icons.Default.Storage, R.string.radio to Icons.Default.Radio,
|
||||
R.string.broadcast to Icons.Default.LiveTv, R.string.dev to Icons.Default.Code, R.string.bluetooth to Icons.Default.Bluetooth)
|
||||
|
||||
val handleBack: () -> Unit = back@{
|
||||
if (applyingConfig) return@back
|
||||
@@ -161,9 +163,16 @@ fun SettingsScreen(vm: ChatViewModel, onBack: () -> Unit, onExit: () -> Unit = {
|
||||
}
|
||||
) { padding ->
|
||||
Column(modifier = Modifier.padding(padding)) {
|
||||
ScrollableTabRow(selectedTabIndex = tabIndex, edgePadding = 0.dp) {
|
||||
tabs.forEachIndexed { idx, name ->
|
||||
Tab(selected = tabIndex == idx, onClick = { tabIndex = idx }, text = { Text(stringResource(name), maxLines = 1) })
|
||||
TabRow(selectedTabIndex = tabIndex) {
|
||||
tabs.forEachIndexed { idx, (name, image) ->
|
||||
val title = stringResource(name)
|
||||
TooltipBox(positionProvider = TooltipDefaults.rememberPlainTooltipPositionProvider(),
|
||||
tooltip = { PlainTooltip { Text(title) } }, state = rememberTooltipState()) {
|
||||
Tab(selected = tabIndex == idx, onClick = {
|
||||
LogManager.addLog("DEBUG", "Settings", "Section selected index=$idx")
|
||||
tabIndex = idx
|
||||
}, icon = { Icon(image, contentDescription = title, modifier = Modifier.size(24.dp)) })
|
||||
}
|
||||
}
|
||||
}
|
||||
key(tabIndex) {
|
||||
|
||||
Reference in new issue
Block a user