LT: use all locales for preferred variants

This commit is contained in:
M66B 2022-11-08 08:46:04 +01:00
parent 428aeac380
commit 14f726753e
1 changed files with 22 additions and 12 deletions

View File

@ -23,6 +23,7 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
import android.os.LocaleList;
import android.text.Editable;
import android.text.Spanned;
import android.text.TextPaint;
@ -86,19 +87,28 @@ public class LanguageTool {
jlanguages = new JSONArray(json);
}
String code = null;
Locale locale = Locale.getDefault();
for (int i = 0; i < jlanguages.length(); i++) {
JSONObject jlanguage = jlanguages.getJSONObject(i);
String c = jlanguage.optString("longCode");
if (locale.toLanguageTag().equals(c) && c.contains("-")) {
code = c;
break;
}
List<Locale> locales = new ArrayList<>();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N)
locales.add(Locale.getDefault());
else {
LocaleList ll = context.getResources().getConfiguration().getLocales();
for (int i = 0; i < ll.size(); i++)
locales.add(ll.get(i));
}
if (code != null)
builder.appendQueryParameter("preferredVariants", code);
List<String> code = new ArrayList<>();
for (Locale locale : locales)
for (int i = 0; i < jlanguages.length(); i++) {
JSONObject jlanguage = jlanguages.getJSONObject(i);
String c = jlanguage.optString("longCode");
if (locale.toLanguageTag().equals(c) && c.contains("-")) {
code.add(c);
break;
}
}
if (code.size() > 0)
builder.appendQueryParameter("preferredVariants", TextUtils.join(",", code));
if (lt_picky)
builder.appendQueryParameter("level", "picky");
@ -111,7 +121,7 @@ public class LanguageTool {
Uri uri = Uri.parse(lt_uri).buildUpon().appendPath("check").build();
String request = builder.build().toString().substring(1);
Log.i("LT locale=" + locale + " uri=" + uri + " request=" + request);
Log.i("LT uri=" + uri + " request=" + request);
URL url = new URL(uri.toString());
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();