make text fields follow content language direction

This commit is contained in:
Helium314 2025-03-26 20:07:47 +01:00
parent 0847bac3d5
commit f06521c8ec
7 changed files with 19 additions and 4 deletions

View file

@ -25,6 +25,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextDirection
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.toBitmap import androidx.core.graphics.drawable.toBitmap
@ -90,3 +92,5 @@ fun <T>DropDownField(
} }
} }
} }
val contentTextDirectionStyle = TextStyle(textDirection = TextDirection.Content)

View file

@ -227,7 +227,8 @@ fun ExpandableSearchField(
else onSearchChange(TextFieldValue()) else onSearchChange(TextFieldValue())
}) { CloseIcon(android.R.string.cancel) } }, }) { CloseIcon(android.R.string.cancel) } },
singleLine = true, singleLine = true,
colors = colors colors = colors,
textStyle = contentTextDirectionStyle
) )
} }
} }

View file

@ -60,6 +60,7 @@ import helium314.keyboard.settings.Theme
import helium314.keyboard.settings.filePicker import helium314.keyboard.settings.filePicker
import helium314.keyboard.settings.previewDark import helium314.keyboard.settings.previewDark
import helium314.keyboard.settings.screens.SaveThoseColors import helium314.keyboard.settings.screens.SaveThoseColors
import helium314.keyboard.settings.contentTextDirectionStyle
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.serialization.SerializationException import kotlinx.serialization.SerializationException
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
@ -187,7 +188,8 @@ private fun AddColorRow(onDismissRequest: () -> Unit, userColors: Collection<Str
onValueChange = { textValue = it }, onValueChange = { textValue = it },
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f),
singleLine = true, singleLine = true,
label = label label = label,
textStyle = contentTextDirectionStyle,
) )
EditButton(currentName.isNotBlank() && currentName !in userColors) { EditButton(currentName.isNotBlank() && currentName !in userColors) {
onDismissRequest() onDismissRequest()

View file

@ -29,6 +29,7 @@ import helium314.keyboard.latin.utils.getStringResourceOrName
import helium314.keyboard.settings.CloseIcon import helium314.keyboard.settings.CloseIcon
import helium314.keyboard.settings.SettingsActivity import helium314.keyboard.settings.SettingsActivity
import helium314.keyboard.settings.Theme import helium314.keyboard.settings.Theme
import helium314.keyboard.settings.contentTextDirectionStyle
import helium314.keyboard.settings.initPreview import helium314.keyboard.settings.initPreview
import helium314.keyboard.settings.previewDark import helium314.keyboard.settings.previewDark
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@ -92,6 +93,7 @@ fun LayoutEditDialog(
isError = !nameValid, isError = !nameValid,
supportingText = { if (!nameValid) Text(stringResource(R.string.name_invalid)) }, supportingText = { if (!nameValid) Text(stringResource(R.string.name_invalid)) },
trailingIcon = { if (!nameValid) CloseIcon(R.string.name_invalid) }, trailingIcon = { if (!nameValid) CloseIcon(R.string.name_invalid) },
textStyle = contentTextDirectionStyle,
) )
}, },
checkTextValid = { text -> checkTextValid = { text ->

View file

@ -50,6 +50,7 @@ import helium314.keyboard.settings.EditButton
import helium314.keyboard.settings.Setting import helium314.keyboard.settings.Setting
import helium314.keyboard.settings.SettingsActivity import helium314.keyboard.settings.SettingsActivity
import helium314.keyboard.settings.Theme import helium314.keyboard.settings.Theme
import helium314.keyboard.settings.contentTextDirectionStyle
import helium314.keyboard.settings.layoutFilePicker import helium314.keyboard.settings.layoutFilePicker
import helium314.keyboard.settings.layoutIntent import helium314.keyboard.settings.layoutIntent
import helium314.keyboard.settings.previewDark import helium314.keyboard.settings.previewDark
@ -140,7 +141,8 @@ private fun AddLayoutRow(onNewLayout: (String) -> Unit, layoutType: LayoutType,
value = textValue, value = textValue,
onValueChange = { textValue = it }, onValueChange = { textValue = it },
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f),
singleLine = true singleLine = true,
textStyle = contentTextDirectionStyle,
) )
EditButton(textValue.text.isNotEmpty() && LayoutUtilsCustom.getLayoutName(textValue.text, layoutType) !in userLayouts) { EditButton(textValue.text.isNotEmpty() && LayoutUtilsCustom.getLayoutName(textValue.text, layoutType) !in userLayouts) {
onNewLayout(textValue.text) onNewLayout(textValue.text)

View file

@ -22,6 +22,7 @@ import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
import helium314.keyboard.settings.Theme import helium314.keyboard.settings.Theme
import helium314.keyboard.settings.contentTextDirectionStyle
import helium314.keyboard.settings.previewDark import helium314.keyboard.settings.previewDark
// mostly taken from StreetComplete / SCEE // mostly taken from StreetComplete / SCEE
@ -76,7 +77,8 @@ fun TextInputDialog(
.focusRequester(focusRequester), .focusRequester(focusRequester),
label = textInputLabel, label = textInputLabel,
keyboardOptions = KeyboardOptions(keyboardType = keyboardType), keyboardOptions = KeyboardOptions(keyboardType = keyboardType),
singleLine = singleLine singleLine = singleLine,
textStyle = contentTextDirectionStyle,
) )
}, },
properties = properties, properties = properties,

View file

@ -58,6 +58,7 @@ import helium314.keyboard.settings.CloseIcon
import helium314.keyboard.settings.SearchScreen import helium314.keyboard.settings.SearchScreen
import helium314.keyboard.settings.SettingsActivity import helium314.keyboard.settings.SettingsActivity
import helium314.keyboard.settings.Theme import helium314.keyboard.settings.Theme
import helium314.keyboard.settings.contentTextDirectionStyle
import helium314.keyboard.settings.dialogs.ColorPickerDialog import helium314.keyboard.settings.dialogs.ColorPickerDialog
import helium314.keyboard.settings.previewDark import helium314.keyboard.settings.previewDark
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@ -137,6 +138,7 @@ fun ColorsScreen(
// supportingText = { if (!nameValid) Text(stringResource(R.string.name_invalid)) } // todo: this is cutting off bottom half of the actual text... // supportingText = { if (!nameValid) Text(stringResource(R.string.name_invalid)) } // todo: this is cutting off bottom half of the actual text...
trailingIcon = { if (!nameValid) CloseIcon(R.string.name_invalid) }, trailingIcon = { if (!nameValid) CloseIcon(R.string.name_invalid) },
singleLine = true, singleLine = true,
textStyle = contentTextDirectionStyle,
) )
}, },
menu = listOf( menu = listOf(