mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-16 23:12:12 +00:00
fix: language selection not working in ios
This commit is contained in:
parent
370303f20e
commit
c890cc3400
4 changed files with 17 additions and 5 deletions
|
|
@ -4,7 +4,7 @@ import nuvio.composeapp.generated.resources.Res
|
||||||
import nuvio.composeapp.generated.resources.lang_english
|
import nuvio.composeapp.generated.resources.lang_english
|
||||||
import nuvio.composeapp.generated.resources.lang_french
|
import nuvio.composeapp.generated.resources.lang_french
|
||||||
import nuvio.composeapp.generated.resources.lang_spanish
|
import nuvio.composeapp.generated.resources.lang_spanish
|
||||||
import nuvio.composeapp.generated.resources.lang_portuguese
|
import nuvio.composeapp.generated.resources.lang_portuguese_portugal
|
||||||
import nuvio.composeapp.generated.resources.lang_turkish
|
import nuvio.composeapp.generated.resources.lang_turkish
|
||||||
import nuvio.composeapp.generated.resources.lang_italian
|
import nuvio.composeapp.generated.resources.lang_italian
|
||||||
import nuvio.composeapp.generated.resources.lang_greek
|
import nuvio.composeapp.generated.resources.lang_greek
|
||||||
|
|
@ -18,6 +18,7 @@ enum class AppLanguage(
|
||||||
ENGLISH("en", Res.string.lang_english),
|
ENGLISH("en", Res.string.lang_english),
|
||||||
FRENCH("fr", Res.string.lang_french),
|
FRENCH("fr", Res.string.lang_french),
|
||||||
SPANISH("es", Res.string.lang_spanish),
|
SPANISH("es", Res.string.lang_spanish),
|
||||||
|
PORTUGUESE("pt", Res.string.lang_portuguese_portugal),
|
||||||
TURKISH("tr", Res.string.lang_turkish),
|
TURKISH("tr", Res.string.lang_turkish),
|
||||||
ITALIAN("it", Res.string.lang_italian),
|
ITALIAN("it", Res.string.lang_italian),
|
||||||
GREEK("el", Res.string.lang_greek),
|
GREEK("el", Res.string.lang_greek),
|
||||||
|
|
|
||||||
|
|
@ -48,8 +48,8 @@ object ThemeSettingsRepository {
|
||||||
_selectedTheme.value = theme
|
_selectedTheme.value = theme
|
||||||
_amoledEnabled.value = ThemeSettingsStorage.loadAmoledEnabled() ?: false
|
_amoledEnabled.value = ThemeSettingsStorage.loadAmoledEnabled() ?: false
|
||||||
val appLanguage = AppLanguage.fromCode(ThemeSettingsStorage.loadSelectedAppLanguage())
|
val appLanguage = AppLanguage.fromCode(ThemeSettingsStorage.loadSelectedAppLanguage())
|
||||||
_selectedAppLanguage.value = appLanguage
|
|
||||||
ThemeSettingsStorage.applySelectedAppLanguage(appLanguage.code)
|
ThemeSettingsStorage.applySelectedAppLanguage(appLanguage.code)
|
||||||
|
_selectedAppLanguage.value = appLanguage
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setTheme(theme: AppTheme) {
|
fun setTheme(theme: AppTheme) {
|
||||||
|
|
@ -69,8 +69,8 @@ object ThemeSettingsRepository {
|
||||||
fun setAppLanguage(language: AppLanguage) {
|
fun setAppLanguage(language: AppLanguage) {
|
||||||
ensureLoaded()
|
ensureLoaded()
|
||||||
if (_selectedAppLanguage.value == language) return
|
if (_selectedAppLanguage.value == language) return
|
||||||
_selectedAppLanguage.value = language
|
|
||||||
ThemeSettingsStorage.saveSelectedAppLanguage(language.code)
|
ThemeSettingsStorage.saveSelectedAppLanguage(language.code)
|
||||||
ThemeSettingsStorage.applySelectedAppLanguage(language.code)
|
ThemeSettingsStorage.applySelectedAppLanguage(language.code)
|
||||||
|
_selectedAppLanguage.value = language
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,17 @@ actual object ThemeSettingsStorage {
|
||||||
NSUserDefaults.standardUserDefaults.setObject(languageCode, forKey = selectedAppLanguageKey)
|
NSUserDefaults.standardUserDefaults.setObject(languageCode, forKey = selectedAppLanguageKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
actual fun applySelectedAppLanguage(languageCode: String) = Unit
|
actual fun applySelectedAppLanguage(languageCode: String) {
|
||||||
|
val normalizedCode = languageCode
|
||||||
|
.trim()
|
||||||
|
.takeIf { it.isNotBlank() }
|
||||||
|
?: AppLanguage.ENGLISH.code
|
||||||
|
NSUserDefaults.standardUserDefaults.setObject(
|
||||||
|
listOf(normalizedCode),
|
||||||
|
forKey = "AppleLanguages",
|
||||||
|
)
|
||||||
|
NSUserDefaults.standardUserDefaults.synchronize()
|
||||||
|
}
|
||||||
|
|
||||||
actual fun exportToSyncPayload(): JsonObject = buildJsonObject {
|
actual fun exportToSyncPayload(): JsonObject = buildJsonObject {
|
||||||
loadSelectedTheme()?.let { put(selectedThemeKey, encodeSyncString(it)) }
|
loadSelectedTheme()?.let { put(selectedThemeKey, encodeSyncString(it)) }
|
||||||
|
|
@ -69,5 +79,6 @@ actual object ThemeSettingsStorage {
|
||||||
payload.decodeSyncString(selectedThemeKey)?.let(::saveSelectedTheme)
|
payload.decodeSyncString(selectedThemeKey)?.let(::saveSelectedTheme)
|
||||||
payload.decodeSyncBoolean(amoledEnabledKey)?.let(::saveAmoledEnabled)
|
payload.decodeSyncBoolean(amoledEnabledKey)?.let(::saveAmoledEnabled)
|
||||||
payload.decodeSyncString(selectedAppLanguageKey)?.let(::saveSelectedAppLanguage)
|
payload.decodeSyncString(selectedAppLanguageKey)?.let(::saveSelectedAppLanguage)
|
||||||
|
applySelectedAppLanguage(loadSelectedAppLanguage() ?: AppLanguage.ENGLISH.code)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue