From a4ffd9c5354522fbc554050f580a3bdb0d46f612 Mon Sep 17 00:00:00 2001 From: Ray c <20511786-ray2c@users.noreply.gitlab.com> Date: Wed, 5 Nov 2025 07:10:57 +0000 Subject: [PATCH] Resurrect from my 'Elvis' falls' in `getBestLocale` Apparently Elvis' got style --- .../kotlin/org/fdroid/LocaleChooser.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/libs/index/src/androidMain/kotlin/org/fdroid/LocaleChooser.kt b/libs/index/src/androidMain/kotlin/org/fdroid/LocaleChooser.kt index 37d208cda..b95c29fdb 100644 --- a/libs/index/src/androidMain/kotlin/org/fdroid/LocaleChooser.kt +++ b/libs/index/src/androidMain/kotlin/org/fdroid/LocaleChooser.kt @@ -30,18 +30,20 @@ public object LocaleChooser { if (firstMatch.script.isNullOrEmpty()) { ICUCompat.maximizeAndGetScript(firstMatch)?.takeUnless { it.isEmpty() } ?.let { script -> getInRankingOrder(firstMatch, tried + 1, script, tried) } - } else if (tried > 1) { - getInRankingOrder(firstMatch, tried - 1, firstMatch.script, tried) } else { - null + if (tried > 1) { + getInRankingOrder(firstMatch, tried - 1, firstMatch.script, tried) + } else { + null + } } // then language and other countries if script matches - ?: if (tried == 0) null else get(firstMatch.language)?.takeIf { _ -> + ?: (if (tried == 0) null else get(firstMatch.language)?.takeIf { _ -> LocaleListCompat.matchesLanguageAndScript( getLocale(firstMatch.language), firstMatch ) - } ?: getFirstSameScript(firstMatch) + }) ?: getFirstSameScript(firstMatch) } } // or English and then just take the first of the list @@ -88,12 +90,12 @@ public object LocaleChooser { } } - private fun getLocale(language: String, script: String = "") = + private fun getLocale(language: String, country: String = "") = if (android.os.Build.VERSION.SDK_INT >= 36) { - Locale.of(language, script) + Locale.of(language, country) } else { @Suppress("DEPRECATION") - Locale(language, script) + Locale(language, country) } }