diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt index 530412b2e..72e01d61a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt @@ -259,10 +259,13 @@ class AccountSettings( // --- // language services // --- - fun addDontTranslateFrom(languageCode: String) { + fun toggleDontTranslateFrom(languageCode: String) { if (!dontTranslateFrom.contains(languageCode)) { dontTranslateFrom = dontTranslateFrom.plus(languageCode) saveAccountSettings() + } else { + dontTranslateFrom = dontTranslateFrom.minus(languageCode) + saveAccountSettings() } } @@ -284,6 +287,12 @@ class AccountSettings( if (key !in languagePreferences) { languagePreferences = languagePreferences + Pair(key, preference) saveAccountSettings() + } else { + if (languagePreferences.get(key) == preference) { + languagePreferences = languagePreferences.minus(key) + } else { + languagePreferences = languagePreferences + Pair(key, preference) + } } } diff --git a/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/components/TranslatableRichTextViewer.kt b/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/components/TranslatableRichTextViewer.kt index d585899ca..63568fe04 100644 --- a/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/components/TranslatableRichTextViewer.kt +++ b/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/components/TranslatableRichTextViewer.kt @@ -46,6 +46,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.SpanStyle @@ -230,7 +231,7 @@ private fun TranslationMessage( ) { DropdownMenuItem( text = { - Row { + Row(verticalAlignment = Alignment.CenterVertically) { if (source in accountViewModel.account.settings.dontTranslateFrom) { Icon( imageVector = Icons.Default.Check, @@ -252,14 +253,14 @@ private fun TranslationMessage( } }, onClick = { - accountViewModel.account.settings.addDontTranslateFrom(source) + accountViewModel.account.settings.toggleDontTranslateFrom(source) langSettingsPopupExpanded = false }, ) HorizontalDivider(thickness = DividerThickness) DropdownMenuItem( text = { - Row { + Row(verticalAlignment = Alignment.CenterVertically) { if (accountViewModel.account.settings.preferenceBetween(source, target) == source) { Icon( imageVector = Icons.Default.Check, @@ -289,7 +290,7 @@ private fun TranslationMessage( ) DropdownMenuItem( text = { - Row { + Row(verticalAlignment = Alignment.CenterVertically) { if (accountViewModel.account.settings.preferenceBetween(source, target) == target) { Icon( imageVector = Icons.Default.Check, @@ -324,7 +325,7 @@ private fun TranslationMessage( languageList.get(i)?.let { lang -> DropdownMenuItem( text = { - Row { + Row(verticalAlignment = Alignment.CenterVertically) { if (accountViewModel.account.settings.translateToContains(lang)) { Icon( imageVector = Icons.Default.Check,