From 18923d59345a6b0a226bbbbea79433051cf24315 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:43:31 +0200 Subject: [PATCH] DocumentScreen: dropdown menu for color mode --- .../app/ui/screens/document/DocumentScreen.kt | 58 ++++++++++++++----- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-cs/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-gl/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 14 files changed, 56 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/fairscan/app/ui/screens/document/DocumentScreen.kt b/app/src/main/java/org/fairscan/app/ui/screens/document/DocumentScreen.kt index 1c4f9fa..994347e 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/document/DocumentScreen.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/document/DocumentScreen.kt @@ -31,6 +31,8 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.AutoFixHigh +import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Contrast import androidx.compose.material.icons.filled.Done import androidx.compose.material.icons.filled.Palette @@ -39,6 +41,8 @@ import androidx.compose.material.icons.filled.RotateRight import androidx.compose.material.icons.outlined.Add import androidx.compose.material.icons.outlined.Delete import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -47,9 +51,11 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Size @@ -240,23 +246,45 @@ fun ColorModeButton( onToggle: () -> Unit, modifier: Modifier = Modifier ) { - val icon = when (currentColorMode) { - COLOR -> Icons.Default.Palette - GRAYSCALE -> Icons.Default.Contrast - } - val label = when (currentColorMode) { - COLOR -> stringResource(R.string.color_mode_color) - GRAYSCALE -> stringResource(R.string.color_mode_grayscale) - } - Column( - horizontalAlignment = Alignment.CenterHorizontally, - modifier = modifier - ) { + var expanded by remember { mutableStateOf(false) } + + Box(modifier = modifier) { SecondaryActionButton( - icon = icon, - contentDescription = label, - onClick = onToggle, + icon = Icons.Default.AutoFixHigh, + contentDescription = stringResource(R.string.color_mode), + onClick = { expanded = true }, ) + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false }, + ) { + DropdownMenuItem( + text = { Text(stringResource(R.string.color_mode_color)) }, + leadingIcon = { Icon(Icons.Default.Palette, contentDescription = null) }, + onClick = { + if (currentColorMode != COLOR) onToggle() + expanded = false + }, + trailingIcon = { + if (currentColorMode == COLOR) { + Icon(Icons.Default.Check, contentDescription = null) + } + } + ) + DropdownMenuItem( + text = { Text(stringResource(R.string.color_mode_grayscale)) }, + leadingIcon = { Icon(Icons.Default.Contrast, contentDescription = null) }, + onClick = { + if (currentColorMode != GRAYSCALE) onToggle() + expanded = false + }, + trailingIcon = { + if (currentColorMode == GRAYSCALE) { + Icon(Icons.Default.Check, contentDescription = null) + } + } + ) + } } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index bb3fb5f..7fbc1a2 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -8,6 +8,7 @@ ألغِ غيّر المجلد امحُ النص + فلتر ألوان تدرج الرمادي تواصل diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 6511244..ec6afc1 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -8,6 +8,7 @@ Zrušit Změnit složku Smazat text + Filtr Barva Odstíny šedi Kontakt diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c8c4284..a04191e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -8,6 +8,7 @@ Abbrechen Ordner ändern Text löschen + Filter Farbe Graustufen Kontakt diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index df232b7..fed32b6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -8,6 +8,7 @@ Cancelar Cambiar carpeta Borrar texto + Filtro Color Escala de grises Contacto diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2da31e7..bd6e4b7 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -8,6 +8,7 @@ Annuler Changer de dossier Effacer le text + Filtre Couleur Niveaux de gris Contact diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 7141517..0b59584 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -8,6 +8,7 @@ Cancelar Trocar cartafol Borrar texto + Filtro Cor Escala de grises Contacto diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 4325708..afb6c3e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -8,6 +8,7 @@ Annulla Cambia cartella Svuota testo + Filtro Colore Scala di grigi Contatti diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ebfc517..808743e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -8,6 +8,7 @@ Cancelar Alterar diretório Limpar texto + Filtro Cor Escala de cinza Contato diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b9ecbf2..8753352 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -11,6 +11,7 @@ Цвет Оттенки серого Контакты + Фильтр Журналы скопированы в буфер обмена Копировать журналы Подготовка экспорта… diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index b6c45da..4850f5a 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -8,6 +8,7 @@ İptal Dizini değiştir Metni temizle + Filtre Renkli Gri tonlama İletişim diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 40cdaab..7c94c7e 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -8,6 +8,7 @@ 取消 變更目錄 清除文字 + 濾鏡 彩色 灰階 聯絡我們 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 5a84a35..1f9f5ab 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -8,6 +8,7 @@ 取消 更改目录 清除文字 + 滤镜 彩色 灰度 联系人 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 90280e5..8c36928 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,6 +9,7 @@ Cancel Change folder Clear text + Filter Color Grayscale Contact