Support for RTL in both TextFields and TextViews.

This commit is contained in:
KotlinGeekDev
2023-01-25 18:59:52 +01:00
committed by KotlinGeek
parent 542bd485d0
commit 74b0dd3b44
6 changed files with 24 additions and 5 deletions

View File

@@ -16,7 +16,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.input.KeyboardCapitalization 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.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
@@ -79,7 +81,8 @@ fun NewChannelView(onClose: () -> Unit, account: Account, channel: Channel? = nu
}, },
keyboardOptions = KeyboardOptions.Default.copy( keyboardOptions = KeyboardOptions.Default.copy(
capitalization = KeyboardCapitalization.Sentences capitalization = KeyboardCapitalization.Sentences
) ),
textStyle = TextStyle(textDirection = TextDirection.Content)
) )
Spacer(modifier = Modifier.height(15.dp)) Spacer(modifier = Modifier.height(15.dp))
@@ -113,6 +116,7 @@ fun NewChannelView(onClose: () -> Unit, account: Account, channel: Channel? = nu
keyboardOptions = KeyboardOptions.Default.copy( keyboardOptions = KeyboardOptions.Default.copy(
capitalization = KeyboardCapitalization.Sentences capitalization = KeyboardCapitalization.Sentences
), ),
textStyle = TextStyle(textDirection = TextDirection.Content),
maxLines = 10 maxLines = 10
) )

View File

@@ -36,7 +36,9 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.input.KeyboardCapitalization 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.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
@@ -153,7 +155,8 @@ fun NewPostView(onClose: () -> Unit, baseReplyTo: Note? = null, account: Account
unfocusedBorderColor = Color.Transparent, unfocusedBorderColor = Color.Transparent,
focusedBorderColor = Color.Transparent focusedBorderColor = Color.Transparent
), ),
visualTransformation = UrlUserTagTransformation(MaterialTheme.colors.primary) visualTransformation = UrlUserTagTransformation(MaterialTheme.colors.primary),
textStyle = TextStyle(textDirection = TextDirection.Content)
) )
val userSuggestions = postViewModel.userSuggestions val userSuggestions = postViewModel.userSuggestions

View File

@@ -6,6 +6,8 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
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.navigation.NavController import androidx.navigation.NavController
import com.google.accompanist.flowlayout.FlowRow import com.google.accompanist.flowlayout.FlowRow
@@ -69,7 +71,7 @@ fun RichTextViewer(content: String, tags: List<List<String>>?, navController: Na
} else if (tagIndex.matcher(word).matches() && tags != null) { } else if (tagIndex.matcher(word).matches() && tags != null) {
TagLink(word, tags, navController) TagLink(word, tags, navController)
} else { } else {
Text(text = "$word ") Text(text = "$word ", style = TextStyle(textDirection = TextDirection.Content))
} }
} }
} }

View File

@@ -18,7 +18,9 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextDirection
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.navigation.NavController import androidx.navigation.NavController
@@ -64,7 +66,8 @@ fun ChatroomCompose(baseNote: Note, accountViewModel: AccountViewModel, navContr
Text( Text(
"${channel.info.name}", "${channel.info.name}",
fontWeight = FontWeight.Bold, fontWeight = FontWeight.Bold,
modifier = it modifier = it,
style = TextStyle(textDirection = TextDirection.Content)
) )
Text( Text(
" Public Chat", " Public Chat",
@@ -152,7 +155,8 @@ fun ChannelName(
channelLastContent, channelLastContent,
color = MaterialTheme.colors.onSurface.copy(alpha = 0.52f), color = MaterialTheme.colors.onSurface.copy(alpha = 0.52f),
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis,
style = TextStyle(textDirection = TextDirection.Content)
) )
else else
Text( Text(

View File

@@ -37,9 +37,11 @@ import androidx.compose.ui.platform.ClipboardManager
import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.text.style.TextDirection
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
@@ -116,6 +118,7 @@ fun ChannelScreen(channelId: String?, accountViewModel: AccountViewModel, accoun
color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f)
) )
}, },
textStyle = TextStyle(textDirection = TextDirection.Content),
trailingIcon = { trailingIcon = {
PostButton( PostButton(
onPost = { onPost = {

View File

@@ -24,8 +24,10 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.text.style.TextDirection
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.NavController import androidx.navigation.NavController
@@ -86,6 +88,7 @@ fun ChatroomScreen(userId: String?, accountViewModel: AccountViewModel, navContr
color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f)
) )
}, },
textStyle = TextStyle(textDirection = TextDirection.Content),
trailingIcon = { trailingIcon = {
PostButton( PostButton(
onPost = { onPost = {