From bd453311acaaa8e0cb07e862209d9e2af8af165f Mon Sep 17 00:00:00 2001 From: evgeny Date: Fri, 30 Oct 2026 22:09:05 +0100 Subject: [PATCH] Use labeled icons for Android settings section tabs --- .../com/utun/chat/ui/screens/SettingsScreen.kt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt index 484de131a..df3ce82b0 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt @@ -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) {