From fe80b509e34312b40ff6c39a9368fdf14c3d31e5 Mon Sep 17 00:00:00 2001 From: Rashed <38612386+rashedswen@users.noreply.github.com> Date: Fri, 3 Mar 2023 23:44:39 +0300 Subject: [PATCH] temporary solution for mirroring arabic text --- .../ui/components/ExpandableRichTextViewer.kt | 15 ++++++++++++++- .../amethyst/ui/components/RichTextViewer.kt | 9 +++++++-- .../ui/components/TranslateableRichTextViewer.kt | 1 - .../vitorpamplona/amethyst/ui/note/NoteCompose.kt | 10 ++++++---- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-es/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-uk/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 10 files changed, 33 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt index c7db09a6e..11c25cb62 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ExpandableRichTextViewer.kt @@ -13,6 +13,7 @@ import androidx.compose.material.ButtonDefaults import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -22,11 +23,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.compositeOver +import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.unit.dp import androidx.navigation.NavController import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.R import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.LayoutDirection @Composable fun ExpandableRichTextViewer( @@ -43,7 +46,17 @@ fun ExpandableRichTextViewer( val text = if (showFullText) content else content.take(350) Box(contentAlignment = Alignment.BottomCenter) { - RichTextViewer(text, canPreview, modifier, tags, backgroundColor, accountViewModel, navController) + CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) { + RichTextViewer( + text, + canPreview, + modifier, + tags, + backgroundColor, + accountViewModel, + navController + ) + } if (content.length > 350 && !showFullText) { Row( diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt index f4fa3dac3..36b380cad 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp @@ -132,8 +133,8 @@ fun RichTextViewer( // FlowRow doesn't work well with paragraphs. So we need to split them content.split('\n').forEach { paragraph -> FlowRow() { - paragraph.split(' ').forEach { word: String -> - + val s = if (isArabic(paragraph)) paragraph.split(' ').reversed() else paragraph.split(' '); + s.forEach { word: String -> if (canPreview) { // Explicit URL val lnInvoice = LnInvoiceUtil.findInvoice(word) @@ -191,6 +192,10 @@ fun RichTextViewer( } } +private fun isArabic(text: String): Boolean { + return text.any { it in '\u0600'..'\u06FF' || it in '\u0750'..'\u077F' } +} + fun isBechLink(word: String): Boolean { return word.startsWith("nostr:", true) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TranslateableRichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TranslateableRichTextViewer.kt index 1d871fcfa..25c10a951 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TranslateableRichTextViewer.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/TranslateableRichTextViewer.kt @@ -183,7 +183,6 @@ fun TranslateableRichTextViewer( Spacer(modifier = Modifier.size(10.dp)) - // TODO : Rashed translate this Text( "${stringResource(R.string.show_in)} ${Locale(source).displayName} ${ stringResource( diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index 8c353220a..188ce2cc7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -134,9 +134,11 @@ fun NoteCompose( launchSingleTop = true } } else { - note.channel()?.let { - navController.navigate("Channel/${it.idHex}") - } + note + .channel() + ?.let { + navController.navigate("Channel/${it.idHex}") + } } }, onLongClick = { popupExpanded = true } @@ -234,7 +236,7 @@ fun NoteCompose( if (noteEvent is RepostEvent) { Text( - " boosted", + " ${stringResource(id = R.string.boosted)}", fontWeight = FontWeight.Bold, color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) ) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 4e0578e1b..760e72de5 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -35,6 +35,7 @@ Zaps مشاهدة العد تعزيز + معزز إقتباس مبلغ جديد في Sats إضافة diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 70267bb78..f8c1e7ef4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -37,6 +37,7 @@ Zaps Total vistas Aumentar + boosted Cita Nueva cantidad en Sats Añadir diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index eb05636d9..2ae02417c 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -35,6 +35,7 @@ Zaps Contagem de visualizações Impulsionar + boosted Citar Novo Valor em Sats Adicionar diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4f6e36f32..3c485cbaa 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -36,6 +36,7 @@ Запы Просмотры Продвинуть + boosted Цитировать Новая сумма в sat Добавить diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9d587f90a..a8a541768 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -36,6 +36,7 @@ Запи Перегляди Просувати + boosted Цитувати Нова сума в sat Додати diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1d6d7acef..1af1f265b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -36,6 +36,7 @@ Zaps View count Boost + boosted Quote New Amount in Sats Add