From c93b568659880d9960e4d48dab599f04bb7d35ee Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Sun, 20 May 2018 00:59:16 +0200 Subject: [PATCH] Minor fixes --- app/build.gradle.kts | 2 +- .../quasseldroid/ui/chat/ChatActivity.kt | 4 +-- .../quasseldroid/util/ui/LocaleHelper.kt | 11 +++++++- .../main/res/values/strings_preferences.xml | 4 +-- .../quasseldroid/util/ui/LocaleHelperTest.kt | 25 +++++++++++++++++++ 5 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 app/src/test/java/de/kuschku/quasseldroid/util/ui/LocaleHelperTest.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4e6822916..9c88c5c6d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -63,7 +63,7 @@ android { signingConfig = signingConfigs.findByName("default") - resConfigs("en", "de", "fr-rCA", "lt", "pt") + //resConfigs("en", "de", "fr-rCA", "lt", "pt") vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt index b77f6ae59..e1dd6bcf7 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt @@ -588,7 +588,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc outState?.putInt("OPEN_BUFFER", viewModel.buffer.value ?: -1) outState?.putInt("OPEN_BUFFERVIEWCONFIG", viewModel.bufferViewConfigId.value ?: -1) outState?.putLong("CONNECTED_ACCOUNT", connectedAccount) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { outPersistentState?.putInt("OPEN_BUFFER", viewModel.buffer.value ?: -1) outPersistentState?.putInt("OPEN_BUFFERVIEWCONFIG", viewModel.bufferViewConfigId.value ?: -1) outPersistentState?.putLong("CONNECTED_ACCOUNT", connectedAccount) @@ -607,7 +607,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc override fun onRestoreInstanceState(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { super.onRestoreInstanceState(savedInstanceState, persistentState) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val fallbackBuffer = persistentState?.getInt("OPEN_BUFFER", -1) ?: -1 viewModel.buffer.onNext( savedInstanceState?.getInt("OPEN_BUFFER", fallbackBuffer) diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt index cf95a5ebf..cbc2ec606 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/LocaleHelper.kt @@ -31,8 +31,17 @@ object LocaleHelper { return updateResources(context, Settings.appearance(context).language) } + fun parseLanguageCode(rawLanguage: String): Locale { + val split = rawLanguage.split("-", limit = 3) + return when (split.size) { + 3 -> Locale(split[0], split[2], split[1]) + 2 -> Locale(split[0], split[1], "") + else -> Locale(split[0], "", "") + } + } + private fun updateResources(context: Context, language: String) = if (language.isNotEmpty()) { - val locale = Locale(language) + val locale = parseLanguageCode(language) Locale.setDefault(locale) val config = Configuration(context.resources.configuration) diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml index 362383ff5..b8f0edd6c 100644 --- a/app/src/main/res/values/strings_preferences.xml +++ b/app/src/main/res/values/strings_preferences.xml @@ -107,11 +107,11 @@ <item>en</item> <item>de</item> <!--<item>fr</item>--> - <item>fr_ca</item> + <item>fr-CA</item> <!--<item>nl</item>--> <item>lt</item> <item>pt</item> - <!--<item>pt_BR</item>--> + <!--<item>pt-BR</item>--> <!--<item>sr</item>--> </string-array> diff --git a/app/src/test/java/de/kuschku/quasseldroid/util/ui/LocaleHelperTest.kt b/app/src/test/java/de/kuschku/quasseldroid/util/ui/LocaleHelperTest.kt new file mode 100644 index 000000000..0aa220b82 --- /dev/null +++ b/app/src/test/java/de/kuschku/quasseldroid/util/ui/LocaleHelperTest.kt @@ -0,0 +1,25 @@ +package de.kuschku.quasseldroid.util.ui + +import org.junit.Assert.assertEquals +import org.junit.Test + +class LocaleHelperTest { + @Test + fun testParseLanguageCode() { + LocaleHelper.parseLanguageCode("fr-CA").let { + assertEquals("CA", it.country) + assertEquals("", it.variant) + assertEquals("fr", it.language) + } + LocaleHelper.parseLanguageCode("zh-Hant-TW").let { + assertEquals("TW", it.country) + assertEquals("Hant", it.variant) + assertEquals("zh", it.language) + } + LocaleHelper.parseLanguageCode("zh").let { + assertEquals("", it.country) + assertEquals("", it.variant) + assertEquals("zh", it.language) + } + } +} -- GitLab