Fixes language setting toggles

This commit is contained in:
Vitor Pamplona
2024-09-30 18:47:45 -04:00
parent 3a58819b52
commit 6433830c32
2 changed files with 16 additions and 6 deletions

View File

@@ -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)
}
}
}

View File

@@ -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,