Only shows translations if the result is different than the origin

This commit is contained in:
Vitor Pamplona
2023-02-27 13:54:17 -05:00
parent 36d865510c
commit f065777df2

View File

@@ -38,6 +38,8 @@ import com.vitorpamplona.amethyst.service.lang.LanguageTranslatorService
import com.vitorpamplona.amethyst.service.lang.ResultOrError import com.vitorpamplona.amethyst.service.lang.ResultOrError
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import java.util.Locale import java.util.Locale
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@Composable @Composable
fun TranslateableRichTextViewer( fun TranslateableRichTextViewer(
@@ -62,12 +64,13 @@ fun TranslateableRichTextViewer(
val account = accountState?.account ?: return val account = accountState?.account ?: return
LaunchedEffect(accountState) { LaunchedEffect(accountState) {
withContext(Dispatchers.IO) {
LanguageTranslatorService.autoTranslate( LanguageTranslatorService.autoTranslate(
content, content,
account.dontTranslateFrom, account.dontTranslateFrom,
account.translateTo account.translateTo
).addOnCompleteListener { task -> ).addOnCompleteListener { task ->
if (task.isSuccessful) { if (task.isSuccessful && content != task.result.result) {
if (task.result.sourceLang != null && task.result.targetLang != null) { if (task.result.sourceLang != null && task.result.targetLang != null) {
val preference = account.preferenceBetween(task.result.sourceLang!!, task.result.targetLang!!) val preference = account.preferenceBetween(task.result.sourceLang!!, task.result.targetLang!!)
showOriginal = preference == task.result.sourceLang showOriginal = preference == task.result.sourceLang
@@ -78,6 +81,7 @@ fun TranslateableRichTextViewer(
} }
} }
} }
}
val toBeViewed = if (showOriginal) content else translatedTextState.value.result ?: content val toBeViewed = if (showOriginal) content else translatedTextState.value.result ?: content