use android-24+ LocaleList when choosing localized index data
When choosing localized data from the index, this includes the new LocaleList feature that represents the user's preferred locale ranking https://developer.android.com/reference/android/os/LocaleList.html
This commit is contained in:
parent
add570ab4b
commit
bdc9a14c2a
@ -7,9 +7,12 @@ import android.content.pm.FeatureInfo;
|
|||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.res.AssetManager;
|
import android.content.res.AssetManager;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.content.res.XmlResourceParser;
|
import android.content.res.XmlResourceParser;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
import android.os.LocaleList;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
@ -383,14 +386,19 @@ public class App extends ValueObject implements Comparable<App>, Parcelable {
|
|||||||
|
|
||||||
Set<String> locales = localized.keySet();
|
Set<String> locales = localized.keySet();
|
||||||
Set<String> localesToUse = new LinkedHashSet<>();
|
Set<String> localesToUse = new LinkedHashSet<>();
|
||||||
|
|
||||||
if (locales.contains(localeTag)) {
|
if (locales.contains(localeTag)) {
|
||||||
localesToUse.add(localeTag);
|
localesToUse.add(localeTag);
|
||||||
}
|
}
|
||||||
for (String l : locales) {
|
if (Build.VERSION.SDK_INT >= 24) {
|
||||||
if (l.startsWith(languageTag)) {
|
LocaleList localeList = Resources.getSystem().getConfiguration().getLocales();
|
||||||
localesToUse.add(l);
|
localesToUse.addAll(Arrays.asList(localeList.toLanguageTags().split(",")));
|
||||||
break;
|
}
|
||||||
|
for (String toUse : localesToUse) {
|
||||||
|
for (String l : locales) {
|
||||||
|
if (l.startsWith(toUse.split("-")[0])) {
|
||||||
|
localesToUse.add(l);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (locales.contains("en-US")) {
|
if (locales.contains("en-US")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user