discord-jadx/app/src/main/java/androidx/core/os/LocaleListCompatWrapper.java

248 lines
7.5 KiB
Java

package androidx.core.os;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import c.d.b.a.a;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Locale;
public final class LocaleListCompatWrapper implements LocaleListInterface {
private static final Locale EN_LATN = LocaleListCompat.forLanguageTagCompat("en-Latn");
private static final Locale LOCALE_AR_XB = new Locale("ar", "XB");
private static final Locale LOCALE_EN_XA = new Locale("en", "XA");
private static final Locale[] sEmptyList = new Locale[0];
private final Locale[] mList;
@NonNull
private final String mStringRepresentation;
public LocaleListCompatWrapper(@NonNull Locale... localeArr) {
if (localeArr.length == 0) {
this.mList = sEmptyList;
this.mStringRepresentation = "";
return;
}
Locale[] localeArr2 = new Locale[localeArr.length];
HashSet hashSet = new HashSet();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < localeArr.length; i++) {
Locale locale = localeArr[i];
if (locale == null) {
throw new NullPointerException(a.l("list[", i, "] is null"));
} else if (!hashSet.contains(locale)) {
Locale locale2 = (Locale) locale.clone();
localeArr2[i] = locale2;
toLanguageTag(sb, locale2);
if (i < localeArr.length - 1) {
sb.append(',');
}
hashSet.add(locale2);
} else {
throw new IllegalArgumentException(a.l("list[", i, "] is a repetition"));
}
}
this.mList = localeArr2;
this.mStringRepresentation = sb.toString();
}
private Locale computeFirstMatch(Collection<String> collection, boolean z2) {
int computeFirstMatchIndex = computeFirstMatchIndex(collection, z2);
if (computeFirstMatchIndex == -1) {
return null;
}
return this.mList[computeFirstMatchIndex];
}
/* JADX WARNING: Code restructure failed: missing block: B:11:0x001b, code lost:
if (r6 < Integer.MAX_VALUE) goto L_0x0021;
*/
private int computeFirstMatchIndex(Collection<String> collection, boolean z2) {
int i;
Locale[] localeArr = this.mList;
if (localeArr.length == 1) {
return 0;
}
if (localeArr.length == 0) {
return -1;
}
if (z2) {
i = findFirstMatchIndex(EN_LATN);
if (i == 0) {
return 0;
}
}
i = Integer.MAX_VALUE;
for (String str : collection) {
int findFirstMatchIndex = findFirstMatchIndex(LocaleListCompat.forLanguageTagCompat(str));
if (findFirstMatchIndex == 0) {
return 0;
}
if (findFirstMatchIndex < i) {
i = findFirstMatchIndex;
}
}
if (i == Integer.MAX_VALUE) {
return 0;
}
return i;
}
private int findFirstMatchIndex(Locale locale) {
int i = 0;
while (true) {
Locale[] localeArr = this.mList;
if (i >= localeArr.length) {
return Integer.MAX_VALUE;
}
if (matchScore(locale, localeArr[i]) > 0) {
return i;
}
i++;
}
}
private static String getLikelyScript(Locale locale) {
String script = locale.getScript();
return !script.isEmpty() ? script : "";
}
private static boolean isPseudoLocale(Locale locale) {
return LOCALE_EN_XA.equals(locale) || LOCALE_AR_XB.equals(locale);
}
@IntRange(from = 0, to = 1)
private static int matchScore(Locale locale, Locale locale2) {
if (locale.equals(locale2)) {
return 1;
}
if (!locale.getLanguage().equals(locale2.getLanguage()) || isPseudoLocale(locale) || isPseudoLocale(locale2)) {
return 0;
}
String likelyScript = getLikelyScript(locale);
if (!likelyScript.isEmpty()) {
return likelyScript.equals(getLikelyScript(locale2)) ? 1 : 0;
}
String country = locale.getCountry();
return (country.isEmpty() || country.equals(locale2.getCountry())) ? 1 : 0;
}
@VisibleForTesting
public static void toLanguageTag(StringBuilder sb, Locale locale) {
sb.append(locale.getLanguage());
String country = locale.getCountry();
if (country != null && !country.isEmpty()) {
sb.append('-');
sb.append(locale.getCountry());
}
}
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof LocaleListCompatWrapper)) {
return false;
}
Locale[] localeArr = ((LocaleListCompatWrapper) obj).mList;
if (this.mList.length != localeArr.length) {
return false;
}
int i = 0;
while (true) {
Locale[] localeArr2 = this.mList;
if (i >= localeArr2.length) {
return true;
}
if (!localeArr2[i].equals(localeArr[i])) {
return false;
}
i++;
}
}
@Override // androidx.core.os.LocaleListInterface
public Locale get(int i) {
if (i >= 0) {
Locale[] localeArr = this.mList;
if (i < localeArr.length) {
return localeArr[i];
}
}
return null;
}
@Override // androidx.core.os.LocaleListInterface
public Locale getFirstMatch(@NonNull String[] strArr) {
return computeFirstMatch(Arrays.asList(strArr), false);
}
@Override // androidx.core.os.LocaleListInterface
@Nullable
public Object getLocaleList() {
return null;
}
public int hashCode() {
int i = 1;
int i2 = 0;
while (true) {
Locale[] localeArr = this.mList;
if (i2 >= localeArr.length) {
return i;
}
i = (i * 31) + localeArr[i2].hashCode();
i2++;
}
}
@Override // androidx.core.os.LocaleListInterface
public int indexOf(Locale locale) {
int i = 0;
while (true) {
Locale[] localeArr = this.mList;
if (i >= localeArr.length) {
return -1;
}
if (localeArr[i].equals(locale)) {
return i;
}
i++;
}
}
@Override // androidx.core.os.LocaleListInterface
public boolean isEmpty() {
return this.mList.length == 0;
}
@Override // androidx.core.os.LocaleListInterface
public int size() {
return this.mList.length;
}
@Override // androidx.core.os.LocaleListInterface
public String toLanguageTags() {
return this.mStringRepresentation;
}
public String toString() {
StringBuilder L = a.L("[");
int i = 0;
while (true) {
Locale[] localeArr = this.mList;
if (i < localeArr.length) {
L.append(localeArr[i]);
if (i < this.mList.length - 1) {
L.append(',');
}
i++;
} else {
L.append("]");
return L.toString();
}
}
}
}