discord-jadx/app/src/main/java/androidx/core/text/ICUCompat.java

73 lines
2.2 KiB
Java

package androidx.core.text;
import android.icu.util.ULocale;
import android.os.Build;
import android.util.Log;
import androidx.annotation.Nullable;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Locale;
public final class ICUCompat {
private static final String TAG = "ICUCompat";
private static Method sAddLikelySubtagsMethod;
private static Method sGetScriptMethod;
static {
if (Build.VERSION.SDK_INT < 24) {
try {
sAddLikelySubtagsMethod = Class.forName("libcore.icu.ICU").getMethod("addLikelySubtags", Locale.class);
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
}
private ICUCompat() {
}
private static String addLikelySubtags(Locale locale) {
String locale2 = locale.toString();
try {
Method method = sAddLikelySubtagsMethod;
if (method != null) {
return (String) method.invoke(null, locale2);
}
} catch (IllegalAccessException e) {
Log.w("ICUCompat", e);
} catch (InvocationTargetException e2) {
Log.w("ICUCompat", e2);
}
return locale2;
}
private static String getScript(String str) {
try {
Method method = sGetScriptMethod;
if (method != null) {
return (String) method.invoke(null, str);
}
} catch (IllegalAccessException e) {
Log.w("ICUCompat", e);
} catch (InvocationTargetException e2) {
Log.w("ICUCompat", e2);
}
return null;
}
@Nullable
public static String maximizeAndGetScript(Locale locale) {
if (Build.VERSION.SDK_INT >= 24) {
return ULocale.addLikelySubtags(ULocale.forLocale(locale)).getScript();
}
try {
return ((Locale) sAddLikelySubtagsMethod.invoke(null, locale)).getScript();
} catch (InvocationTargetException e) {
Log.w("ICUCompat", e);
return locale.getScript();
} catch (IllegalAccessException e2) {
Log.w("ICUCompat", e2);
return locale.getScript();
}
}
}