From bce545944fd26e1fba782ba7907f746d28998271 Mon Sep 17 00:00:00 2001 From: codokie <151087174+codokie@users.noreply.github.com> Date: Wed, 16 Apr 2025 05:52:28 +0000 Subject: [PATCH] Fix text input alignment/direction (#3489) * Revert text alignment change * Set text direction of input fields based on content --- app/src/main/java/org/tasks/compose/FilterCondition.kt | 5 ++++- app/src/main/java/org/tasks/compose/ShareInvite.kt | 5 ++++- app/src/main/java/org/tasks/compose/edit/EditTextView.kt | 1 - app/src/main/java/org/tasks/compose/edit/SubtaskRow.kt | 2 ++ app/src/main/java/org/tasks/compose/settings/TitleInput.kt | 2 ++ app/src/main/java/org/tasks/tags/TagPickerActivity.kt | 5 +++++ app/src/main/res/layout/fragment_comment_bar.xml | 1 - .../kotlin/org/tasks/compose/components/SearchBar.kt | 5 ++++- 8 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/tasks/compose/FilterCondition.kt b/app/src/main/java/org/tasks/compose/FilterCondition.kt index a26b5f3a4..3eb9a0d38 100644 --- a/app/src/main/java/org/tasks/compose/FilterCondition.kt +++ b/app/src/main/java/org/tasks/compose/FilterCondition.kt @@ -54,6 +54,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -482,7 +483,9 @@ object FilterCondition { contentDescription = null ) }, - textStyle = MaterialTheme.typography.bodyMedium, + textStyle = MaterialTheme.typography.bodyMedium.copy( + textDirection = TextDirection.Content + ), colors = Constants.textFieldColors(), ) } diff --git a/app/src/main/java/org/tasks/compose/ShareInvite.kt b/app/src/main/java/org/tasks/compose/ShareInvite.kt index d4ac3c84c..ff029ef0b 100644 --- a/app/src/main/java/org/tasks/compose/ShareInvite.kt +++ b/app/src/main/java/org/tasks/compose/ShareInvite.kt @@ -21,6 +21,7 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.tooling.preview.Preview import org.tasks.R import org.tasks.compose.Constants.TextButton @@ -108,7 +109,9 @@ object ShareInvite { contentDescription = label ) }, - textStyle = MaterialTheme.typography.bodyLarge, + textStyle = MaterialTheme.typography.bodyLarge.copy( + textDirection = TextDirection.Content + ), colors = textFieldColors(), ) } diff --git a/app/src/main/java/org/tasks/compose/edit/EditTextView.kt b/app/src/main/java/org/tasks/compose/edit/EditTextView.kt index b8a095016..96160d680 100644 --- a/app/src/main/java/org/tasks/compose/edit/EditTextView.kt +++ b/app/src/main/java/org/tasks/compose/edit/EditTextView.kt @@ -92,7 +92,6 @@ fun EditTextView( } setBackgroundColor(context.getColor(android.R.color.transparent)) - textAlignment = View.TEXT_ALIGNMENT_VIEW_START importantForAutofill = View.IMPORTANT_FOR_AUTOFILL_NO freezesText = true setHorizontallyScrolling(false) diff --git a/app/src/main/java/org/tasks/compose/edit/SubtaskRow.kt b/app/src/main/java/org/tasks/compose/edit/SubtaskRow.kt index d66afe528..23f33860b 100644 --- a/app/src/main/java/org/tasks/compose/edit/SubtaskRow.kt +++ b/app/src/main/java/org/tasks/compose/edit/SubtaskRow.kt @@ -31,6 +31,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import org.tasks.compose.CheckBox @@ -170,6 +171,7 @@ fun NewSubtaskRow( .padding(top = 12.dp), textStyle = MaterialTheme.typography.bodyLarge.copy( textDecoration = if (subtask.isCompleted) TextDecoration.LineThrough else TextDecoration.None, + textDirection = TextDirection.Content, color = MaterialTheme.colorScheme.onSurface, ), keyboardOptions = KeyboardOptions.Default.copy( 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 3d5f34e7b..aeca6a5ff 100644 --- a/app/src/main/java/org/tasks/compose/settings/TitleInput.kt +++ b/app/src/main/java/org/tasks/compose/settings/TitleInput.kt @@ -24,6 +24,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.style.TextDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import kotlinx.coroutines.delay @@ -67,6 +68,7 @@ fun TitleInput( BasicTextField( value = text, textStyle = TextStyle( + textDirection = TextDirection.Content, fontSize = LocalTextStyle.current.fontSize, color = LocalContentColor.current ), diff --git a/app/src/main/java/org/tasks/tags/TagPickerActivity.kt b/app/src/main/java/org/tasks/tags/TagPickerActivity.kt index ee236794c..7ca278958 100644 --- a/app/src/main/java/org/tasks/tags/TagPickerActivity.kt +++ b/app/src/main/java/org/tasks/tags/TagPickerActivity.kt @@ -34,7 +34,9 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.vectorResource import androidx.compose.ui.state.ToggleableState +import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.KeyboardCapitalization +import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.lifecycle.viewModelScope import dagger.hilt.android.AndroidEntryPoint @@ -191,6 +193,9 @@ internal fun SearchBar( focusedIndicatorColor = Color.Transparent, unfocusedIndicatorColor = Color.Transparent ), + textStyle = TextStyle( + textDirection = TextDirection.Content + ), modifier = Modifier.padding(start = 6.dp), keyboardOptions = KeyboardOptions( capitalization = KeyboardCapitalization.Words, diff --git a/app/src/main/res/layout/fragment_comment_bar.xml b/app/src/main/res/layout/fragment_comment_bar.xml index 30940e1dc..cc49515c9 100644 --- a/app/src/main/res/layout/fragment_comment_bar.xml +++ b/app/src/main/res/layout/fragment_comment_bar.xml @@ -40,7 +40,6 @@ android:inputType="textCapSentences" android:nextFocusLeft="@id/commentField" android:nextFocusUp="@id/commentField" - android:textAlignment="viewStart" android:textColor="?attr/colorOnBackground" android:textColorHint="?attr/colorOnBackground" android:textCursorDrawable="@null" diff --git a/kmp/src/commonMain/kotlin/org/tasks/compose/components/SearchBar.kt b/kmp/src/commonMain/kotlin/org/tasks/compose/components/SearchBar.kt index 03918e7ce..d6e98f4e7 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/compose/components/SearchBar.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/compose/components/SearchBar.kt @@ -22,6 +22,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.focus.focusProperties import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp val SEARCH_BAR_HEIGHT = 56.dp @@ -82,7 +83,9 @@ fun SearchBar( } ), singleLine = true, - textStyle = MaterialTheme.typography.bodyLarge, + textStyle = MaterialTheme.typography.bodyLarge.copy( + textDirection = TextDirection.Content + ), colors = OutlinedTextFieldDefaults.colors( focusedBorderColor = MaterialTheme.colorScheme.onSurface, unfocusedBorderColor = MaterialTheme.colorScheme.onSurface,