mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-10-04 18:12:47 +02:00
Move dont translate settings to the dedicated user settings page
This commit is contained in:
@@ -253,9 +253,6 @@ private fun NavigateIfIntentRequested(
|
||||
}
|
||||
|
||||
nav.newStack(Route.NewPost(message = message, attachment = media.toString()))
|
||||
|
||||
media = null
|
||||
message = null
|
||||
} else {
|
||||
var newAccount by remember { mutableStateOf<String?>(null) }
|
||||
|
||||
|
@@ -898,6 +898,8 @@ class AccountViewModel(
|
||||
|
||||
fun dontTranslateFrom() = account.settings.syncedSettings.languages.dontTranslateFrom
|
||||
|
||||
fun toggleDontTranslateFrom(languageCode: String) = account.toggleDontTranslateFrom(languageCode)
|
||||
|
||||
fun translateTo() = account.settings.syncedSettings.languages.translateTo
|
||||
|
||||
fun defaultZapType() = account.settings.syncedSettings.zaps.defaultZapType.value
|
||||
|
@@ -32,18 +32,10 @@ import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.DropdownMenuItem
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.ExposedDropdownMenuBox
|
||||
import androidx.compose.material3.ExposedDropdownMenuDefaults
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
@@ -85,7 +77,6 @@ import kotlinx.collections.immutable.toImmutableMap
|
||||
import org.xmlpull.v1.XmlPullParser
|
||||
import org.xmlpull.v1.XmlPullParserException
|
||||
import java.io.IOException
|
||||
import java.util.Locale as JavaLocale
|
||||
|
||||
fun Context.getLocaleListFromXml(): LocaleListCompat {
|
||||
val tagsList = mutableListOf<CharSequence>()
|
||||
@@ -128,7 +119,7 @@ fun getLanguageIndex(
|
||||
sharedPreferencesViewModel: SharedPreferencesViewModel,
|
||||
): Int {
|
||||
val language = sharedPreferencesViewModel.sharedPrefs.language
|
||||
var languageIndex = -1
|
||||
var languageIndex: Int
|
||||
if (language != null) {
|
||||
languageIndex = languageEntries.values.toTypedArray().indexOf(language)
|
||||
} else {
|
||||
@@ -242,10 +233,6 @@ fun SettingsScreen(sharedPreferencesViewModel: SharedPreferencesViewModel) {
|
||||
|
||||
Spacer(modifier = HalfVertSpacer)
|
||||
|
||||
DontTranslateFromSetting(sharedPreferencesViewModel)
|
||||
|
||||
Spacer(modifier = HalfVertSpacer)
|
||||
|
||||
SettingsRow(
|
||||
R.string.theme,
|
||||
R.string.theme_description,
|
||||
@@ -335,48 +322,6 @@ fun SettingsScreen(sharedPreferencesViewModel: SharedPreferencesViewModel) {
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun DontTranslateFromSetting(sharedPreferencesViewModel: SharedPreferencesViewModel) {
|
||||
var expanded by remember { mutableStateOf(false) }
|
||||
val selectedLanguages = sharedPreferencesViewModel.sharedPrefs.dontTranslateFrom
|
||||
|
||||
Column {
|
||||
SettingsRow(
|
||||
name = R.string.dont_translate_from,
|
||||
description = R.string.dont_translate_from_description,
|
||||
) {
|
||||
ExposedDropdownMenuBox(
|
||||
expanded = expanded,
|
||||
onExpandedChange = { expanded = !expanded },
|
||||
) {
|
||||
OutlinedTextField(
|
||||
value = stringRes(R.string.add_a_language),
|
||||
onValueChange = {},
|
||||
readOnly = true,
|
||||
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
|
||||
modifier = Modifier.menuAnchor(),
|
||||
)
|
||||
|
||||
ExposedDropdownMenu(
|
||||
expanded = expanded,
|
||||
onDismissRequest = { expanded = false },
|
||||
) {
|
||||
selectedLanguages.forEach { languageCode ->
|
||||
DropdownMenuItem(
|
||||
text = { Text(text = JavaLocale.forLanguageTag(languageCode).displayName) },
|
||||
onClick = {
|
||||
sharedPreferencesViewModel.removeDontTranslateFrom(languageCode)
|
||||
expanded = false
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SettingsRow(
|
||||
name: Int,
|
||||
|
@@ -21,9 +21,22 @@
|
||||
package com.vitorpamplona.amethyst.ui.screen.loggedIn.settings
|
||||
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.DropdownMenuItem
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.ExposedDropdownMenuBox
|
||||
import androidx.compose.material3.ExposedDropdownMenuDefaults
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import com.vitorpamplona.amethyst.R
|
||||
import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold
|
||||
@@ -31,6 +44,9 @@ import com.vitorpamplona.amethyst.ui.navigation.INav
|
||||
import com.vitorpamplona.amethyst.ui.navigation.TopBarWithBackButton
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.stringRes
|
||||
import com.vitorpamplona.amethyst.ui.theme.Size10dp
|
||||
import com.vitorpamplona.amethyst.ui.theme.Size20dp
|
||||
import java.util.Locale as JavaLocale
|
||||
|
||||
@Composable
|
||||
fun UserSettingsScreen(
|
||||
@@ -46,6 +62,58 @@ fun UserSettingsScreen(
|
||||
) {
|
||||
Column(Modifier.padding(it)) {
|
||||
Text("Hello World!")
|
||||
|
||||
Column(
|
||||
Modifier
|
||||
.fillMaxSize()
|
||||
.padding(top = Size10dp, start = Size20dp, end = Size20dp)
|
||||
.verticalScroll(rememberScrollState()),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
) {
|
||||
DontTranslateFromSetting(accountViewModel)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun DontTranslateFromSetting(accountViewModel: AccountViewModel) {
|
||||
var expanded by remember { mutableStateOf(false) }
|
||||
val selectedLanguages = accountViewModel.dontTranslateFrom()
|
||||
|
||||
Column {
|
||||
SettingsRow(
|
||||
name = R.string.dont_translate_from,
|
||||
description = R.string.dont_translate_from_description,
|
||||
) {
|
||||
ExposedDropdownMenuBox(
|
||||
expanded = expanded,
|
||||
onExpandedChange = { expanded = !expanded },
|
||||
) {
|
||||
OutlinedTextField(
|
||||
value = stringRes(R.string.add_a_language),
|
||||
onValueChange = {},
|
||||
readOnly = true,
|
||||
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
|
||||
modifier = Modifier.menuAnchor(),
|
||||
)
|
||||
|
||||
ExposedDropdownMenu(
|
||||
expanded = expanded,
|
||||
onDismissRequest = { expanded = false },
|
||||
) {
|
||||
selectedLanguages.forEach { languageCode ->
|
||||
DropdownMenuItem(
|
||||
text = { Text(text = JavaLocale.forLanguageTag(languageCode).displayName) },
|
||||
onClick = {
|
||||
accountViewModel.toggleDontTranslateFrom(languageCode)
|
||||
expanded = false
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user