Fix per-app locale selection

This commit is contained in:
Koitharu
2025-05-08 20:46:58 +03:00
parent 7cf7a62881
commit beba4f029a
4 changed files with 65 additions and 63 deletions

View File

@@ -19,8 +19,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdk = 21
targetSdk = 35
versionCode = 1011
versionName = '8.1.5'
versionCode = 1012
versionName = '8.1.6'
generatedDensities = []
testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner'
ksp {

View File

@@ -52,6 +52,7 @@
android:hasFragileUserData="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:localeConfig="@xml/locales_config"
android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config"
android:requestLegacyExternalStorage="true"

View File

@@ -1,7 +1,6 @@
package org.koitharu.kotatsu.core.util.ext
import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.app.ActivityManager
import android.app.ActivityManager.MemoryInfo
@@ -53,6 +52,7 @@ import okio.use
import org.json.JSONException
import org.jsoup.internal.StringUtil.StringJoiner
import org.koitharu.kotatsu.BuildConfig
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.main.ui.MainActivity
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.xmlpull.v1.XmlPullParser
@@ -140,7 +140,6 @@ val Context.ramAvailable: Long
return result.availMem
}
@SuppressLint("DiscouragedApi")
fun Context.getLocalesConfig(): LocaleListCompat {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
LocaleConfig(this).supportedLocales?.let {
@@ -149,8 +148,7 @@ fun Context.getLocalesConfig(): LocaleListCompat {
}
val tagsList = StringJoiner(",")
try {
val resId = resources.getIdentifier("_generated_res_locale_config", "xml", packageName)
val xpp: XmlPullParser = resources.getXml(resId)
val xpp: XmlPullParser = resources.getXml(R.xml.locales_config)
while (xpp.eventType != XmlPullParser.END_DOCUMENT) {
if (xpp.eventType == XmlPullParser.START_TAG) {
if (xpp.name == "locale") {

View File

@@ -1,59 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
<locale android:name="ab"/>
<locale android:name="ar"/>
<locale android:name="arq"/>
<locale android:name="as"/>
<locale android:name="be"/>
<locale android:name="bn"/>
<locale android:name="ca"/>
<locale android:name="cs"/>
<locale android:name="de"/>
<locale android:name="el"/>
<locale android:name="en-GB"/>
<locale android:name="enm"/>
<locale android:name="es"/>
<locale android:name="et"/>
<locale android:name="eu"/>
<locale android:name="fa"/>
<locale android:name="fi"/>
<locale android:name="fil"/>
<locale android:name="fr"/>
<locale android:name="frp"/>
<locale android:name="gu"/>
<locale android:name="he"/> <locale android:name="hi"/>
<locale android:name="hr"/>
<locale android:name="hu"/>
<locale android:name="id"/> <locale android:name="it"/>
<locale android:name="ja"/>
<locale android:name="kk"/>
<locale android:name="km"/>
<locale android:name="ko"/>
<locale android:name="lt"/>
<locale android:name="lv"/>
<locale android:name="lzh"/>
<locale android:name="ml"/>
<locale android:name="ms"/>
<locale android:name="my"/>
<locale android:name="nb-NO"/>
<locale android:name="ne"/>
<locale android:name="nn"/>
<locale android:name="or"/>
<locale android:name="pa"/>
<locale android:name="pa-PK"/>
<locale android:name="pl"/>
<locale android:name="pt"/>
<locale android:name="pt-BR"/>
<locale android:name="ro"/>
<locale android:name="ru"/>
<locale android:name="si"/>
<locale android:name="sr"/>
<locale android:name="sv"/>
<locale android:name="ta"/>
<locale android:name="th"/>
<locale android:name="tr"/>
<locale android:name="uk"/>
<locale android:name="vi"/>
<locale android:name="zh-CN"/>
<locale android:name="zh-TW"/>
<locale-config
xmlns:android="http://schemas.android.com/apk/res/android">
<locale android:name="ab" />
<locale android:name="ar" />
<locale android:name="arq" />
<locale android:name="as" />
<locale android:name="be" />
<locale android:name="bn" />
<locale android:name="ca" />
<locale android:name="cs" />
<locale android:name="de" />
<locale android:name="el" />
<locale android:name="en-GB" />
<locale android:name="enm" />
<locale android:name="es" />
<locale android:name="et" />
<locale android:name="eu" />
<locale android:name="fa" />
<locale android:name="fi" />
<locale android:name="fil" />
<locale android:name="fr" />
<locale android:name="frp" />
<locale android:name="gu" />
<locale android:name="he" />
<locale android:name="hi" />
<locale android:name="hr" />
<locale android:name="hu" />
<locale android:name="id" />
<locale android:name="it" />
<locale android:name="ja" />
<locale android:name="kk" />
<locale android:name="km" />
<locale android:name="ko" />
<locale android:name="lt" />
<locale android:name="lv" />
<locale android:name="lzh" />
<locale android:name="ml" />
<locale android:name="ms" />
<locale android:name="my" />
<locale android:name="nb-NO" />
<locale android:name="ne" />
<locale android:name="nn" />
<locale android:name="or" />
<locale android:name="pa" />
<locale android:name="pa-PK" />
<locale android:name="pl" />
<locale android:name="pt" />
<locale android:name="pt-BR" />
<locale android:name="ro" />
<locale android:name="ru" />
<locale android:name="si" />
<locale android:name="sr" />
<locale android:name="sv" />
<locale android:name="ta" />
<locale android:name="th" />
<locale android:name="tr" />
<locale android:name="uk" />
<locale android:name="vi" />
<locale android:name="zh-CN" />
<locale android:name="zh-TW" />
</locale-config>