From 9e0e01f89bad9b0e1fa34fa7d822fc1843cf4cc1 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sat, 4 Oct 2025 03:18:20 -0500 Subject: [PATCH] Custom filter creation improvements --- .../java/org/tasks/compose/FilterCondition.kt | 34 +++++++++++++++---- .../compose/settings/ListSettingsScaffold.kt | 5 +++ .../org/tasks/compose/settings/TitleInput.kt | 5 +++ 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/tasks/compose/FilterCondition.kt b/app/src/main/java/org/tasks/compose/FilterCondition.kt index 45fba0c2a..205951144 100644 --- a/app/src/main/java/org/tasks/compose/FilterCondition.kt +++ b/app/src/main/java/org/tasks/compose/FilterCondition.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Abc @@ -54,6 +55,7 @@ import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.text.style.TextOverflow @@ -384,16 +386,31 @@ object FilterCondition { Row { for (index in items.indices) { val highlight = (index == selected.intValue) - val color = - if (highlight) MaterialTheme.colorScheme.secondary.copy(alpha = 0.5f) - else MaterialTheme.colorScheme.onBackground.copy(alpha = 0.5f) OutlinedButton( onClick = { selected.intValue = index }, - border = BorderStroke(1.dp, SolidColor(color.copy(alpha = 0.5f))), + border = BorderStroke( + width = 1.dp, + brush = SolidColor( + if (highlight) { + MaterialTheme.colorScheme.primary + } else { + MaterialTheme.colorScheme.onBackground.copy(alpha = 0.5f) + } + ) + ), colors = ButtonDefaults.outlinedButtonColors( - containerColor = color.copy(alpha = 0.2f), - contentColor = MaterialTheme.colorScheme.onBackground), - shape = RoundedCornerShape(Constants.HALF_KEYLINE) + containerColor = if (highlight) { + MaterialTheme.colorScheme.primary + } else { + MaterialTheme.colorScheme.onBackground.copy(alpha = 0.2f) + }, + contentColor = if (highlight) { + MaterialTheme.colorScheme.onPrimary + } else { + MaterialTheme.colorScheme.onBackground + }, + ), + shape = RoundedCornerShape(Constants.HALF_KEYLINE), ) { Text(items[index]) } @@ -484,6 +501,9 @@ object FilterCondition { contentDescription = null ) }, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Sentences + ), textStyle = MaterialTheme.typography.bodyMedium.copy( textDirection = TextDirection.Content ), diff --git a/app/src/main/java/org/tasks/compose/settings/ListSettingsScaffold.kt b/app/src/main/java/org/tasks/compose/settings/ListSettingsScaffold.kt index bf35d4365..00ffd1a71 100644 --- a/app/src/main/java/org/tasks/compose/settings/ListSettingsScaffold.kt +++ b/app/src/main/java/org/tasks/compose/settings/ListSettingsScaffold.kt @@ -5,10 +5,13 @@ import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsetsSides import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.union import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons @@ -17,6 +20,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Scaffold +import androidx.compose.material3.ScaffoldDefaults import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults @@ -46,6 +50,7 @@ fun ListSettingsScaffold( content: @Composable ColumnScope.() -> Unit, ) { Scaffold( + contentWindowInsets = ScaffoldDefaults.contentWindowInsets.union(WindowInsets.ime), topBar = { Column { val context = LocalContext.current diff --git a/app/src/main/java/org/tasks/compose/settings/TitleInput.kt b/app/src/main/java/org/tasks/compose/settings/TitleInput.kt index aeca6a5ff..65377c882 100644 --- a/app/src/main/java/org/tasks/compose/settings/TitleInput.kt +++ b/app/src/main/java/org/tasks/compose/settings/TitleInput.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.BasicTextField +import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalTextStyle @@ -24,6 +25,7 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -73,6 +75,9 @@ fun TitleInput( color = LocalContentColor.current ), onValueChange = { setText(it) }, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Sentences + ), cursorBrush = SolidColor(errorState), // SolidColor(LocalContentColor.current), modifier = Modifier .fillMaxWidth()