LocaleUtils.smali
.class public Laegon/chrome/base/LocaleUtils;
.super Ljava/lang/Object;
# direct methods
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static forLanguageTag(Ljava/lang/String;)Ljava/util/Locale;
.registers 3
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_f
invoke-static {p0}, Ljava/util/Locale;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale;
move-result-object v0
invoke-static {v0}, Laegon/chrome/base/LocaleUtils;->getUpdatedLocaleForAndroid(Ljava/util/Locale;)Ljava/util/Locale;
move-result-object v0
:goto_e
return-object v0
:cond_f
invoke-static {p0}, Laegon/chrome/base/LocaleUtils;->forLanguageTagCompat(Ljava/lang/String;)Ljava/util/Locale;
move-result-object v0
goto :goto_e
.end method
.method public static forLanguageTagCompat(Ljava/lang/String;)Ljava/util/Locale;
.registers 7
const/4 v5, 0x3
const/4 v4, 0x2
const/4 v3, 0x1
const-string v0, "-"
invoke-virtual {p0, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
array-length v1, v0
if-nez v1, :cond_14
new-instance v0, Ljava/util/Locale;
const-string v1, ""
invoke-direct {v0, v1}, Ljava/util/Locale;-><init>(Ljava/lang/String;)V
:goto_13
return-object v0
:cond_14
const/4 v1, 0x0
aget-object v1, v0, v1
invoke-static {v1}, Laegon/chrome/base/LocaleUtils;->getUpdatedLanguageForAndroid(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
if-eq v2, v4, :cond_2f
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
if-eq v2, v5, :cond_2f
new-instance v0, Ljava/util/Locale;
const-string v1, ""
invoke-direct {v0, v1}, Ljava/util/Locale;-><init>(Ljava/lang/String;)V
goto :goto_13
:cond_2f
array-length v2, v0
if-ne v2, v3, :cond_38
new-instance v0, Ljava/util/Locale;
invoke-direct {v0, v1}, Ljava/util/Locale;-><init>(Ljava/lang/String;)V
goto :goto_13
:cond_38
aget-object v2, v0, v3
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v0
if-eq v0, v4, :cond_4c
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v0
if-eq v0, v5, :cond_4c
new-instance v0, Ljava/util/Locale;
invoke-direct {v0, v1}, Ljava/util/Locale;-><init>(Ljava/lang/String;)V
goto :goto_13
:cond_4c
new-instance v0, Ljava/util/Locale;
invoke-direct {v0, v1, v2}, Ljava/util/Locale;-><init>(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_13
.end method
.method private static getDefaultCountryCode()Ljava/lang/String;
.registers 2
.annotation build Laegon/chrome/base/annotations/CalledByNative;
.end annotation
invoke-static {}, Laegon/chrome/base/CommandLine;->getInstance()Laegon/chrome/base/CommandLine;
move-result-object v0
const-string v1, "default-country-code"
invoke-virtual {v0, v1}, Laegon/chrome/base/CommandLine;->hasSwitch(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_13
const-string v1, "default-country-code"
invoke-virtual {v0, v1}, Laegon/chrome/base/CommandLine;->getSwitchValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
:goto_12
return-object v0
:cond_13
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object v0
goto :goto_12
.end method
.method public static getDefaultLocaleListString()Ljava/lang/String;
.registers 2
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x18
if-lt v0, v1, :cond_f
invoke-static {}, Landroid/os/LocaleList;->getDefault()Landroid/os/LocaleList;
move-result-object v0
invoke-static {v0}, Laegon/chrome/base/LocaleUtils;->toLanguageTags(Landroid/os/LocaleList;)Ljava/lang/String;
move-result-object v0
:goto_e
return-object v0
:cond_f
invoke-static {}, Laegon/chrome/base/LocaleUtils;->getDefaultLocaleString()Ljava/lang/String;
move-result-object v0
goto :goto_e
.end method
.method public static getDefaultLocaleString()Ljava/lang/String;
.registers 1
.annotation build Laegon/chrome/base/annotations/CalledByNative;
.end annotation
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-static {v0}, Laegon/chrome/base/LocaleUtils;->toLanguageTag(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getUpdatedLanguageForAndroid(Ljava/lang/String;)Ljava/lang/String;
.registers 3
const/4 v0, -0x1
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
move-result v1
sparse-switch v1, :sswitch_data_26
:cond_8
:goto_8
packed-switch v0, :pswitch_data_30
:goto_b
return-object p0
:sswitch_c
const-string v1, "und"
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8
const/4 v0, 0x0
goto :goto_8
:sswitch_16
const-string v1, "fil"
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8
const/4 v0, 0x1
goto :goto_8
:pswitch_20
const-string p0, ""
goto :goto_b
:pswitch_23
const-string p0, "tl"
goto :goto_b
:sswitch_data_26
.sparse-switch
0x18c09 -> :sswitch_16
0x1c4eb -> :sswitch_c
.end sparse-switch
:pswitch_data_30
.packed-switch 0x0
:pswitch_20
:pswitch_23
.end packed-switch
.end method
.method public static getUpdatedLanguageForChromium(Ljava/lang/String;)Ljava/lang/String;
.registers 3
const/4 v0, -0x1
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
move-result v1
sparse-switch v1, :sswitch_data_40
:cond_8
:goto_8
packed-switch v0, :pswitch_data_52
:goto_b
return-object p0
:sswitch_c
const-string v1, "iw"
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8
const/4 v0, 0x0
goto :goto_8
:sswitch_16
const-string v1, "ji"
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8
const/4 v0, 0x1
goto :goto_8
:sswitch_20
const-string v1, "in"
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8
const/4 v0, 0x2
goto :goto_8
:sswitch_2a
const-string v1, "tl"
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8
const/4 v0, 0x3
goto :goto_8
:pswitch_34
const-string p0, "he"
goto :goto_b
:pswitch_37
const-string p0, "yi"
goto :goto_b
:pswitch_3a
const-string p0, "id"
goto :goto_b
:pswitch_3d
const-string p0, "fil"
goto :goto_b
:sswitch_data_40
.sparse-switch
0xd25 -> :sswitch_20
0xd2e -> :sswitch_c
0xd3f -> :sswitch_16
0xe78 -> :sswitch_2a
.end sparse-switch
:pswitch_data_52
.packed-switch 0x0
:pswitch_34
:pswitch_37
:pswitch_3a
:pswitch_3d
.end packed-switch
.end method
.method public static getUpdatedLocaleForAndroid(Ljava/util/Locale;)Ljava/util/Locale;
.registers 3
.annotation build Laegon/chrome/base/VisibleForTesting;
.end annotation
.annotation build Landroid/annotation/TargetApi;
value = 0x15
.end annotation
invoke-virtual {p0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Laegon/chrome/base/LocaleUtils;->getUpdatedLanguageForAndroid(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_f
:goto_e
return-object p0
:cond_f
new-instance v0, Ljava/util/Locale$Builder;
invoke-direct {v0}, Ljava/util/Locale$Builder;-><init>()V
invoke-virtual {v0, p0}, Ljava/util/Locale$Builder;->setLocale(Ljava/util/Locale;)Ljava/util/Locale$Builder;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/util/Locale$Builder;->setLanguage(Ljava/lang/String;)Ljava/util/Locale$Builder;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Locale$Builder;->build()Ljava/util/Locale;
move-result-object p0
goto :goto_e
.end method
.method public static getUpdatedLocaleForChromium(Ljava/util/Locale;)Ljava/util/Locale;
.registers 3
.annotation build Laegon/chrome/base/VisibleForTesting;
.end annotation
.annotation build Landroid/annotation/TargetApi;
value = 0x15
.end annotation
invoke-virtual {p0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Laegon/chrome/base/LocaleUtils;->getUpdatedLanguageForChromium(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_f
:goto_e
return-object p0
:cond_f
new-instance v0, Ljava/util/Locale$Builder;
invoke-direct {v0}, Ljava/util/Locale$Builder;-><init>()V
invoke-virtual {v0, p0}, Ljava/util/Locale$Builder;->setLocale(Ljava/util/Locale;)Ljava/util/Locale$Builder;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/util/Locale$Builder;->setLanguage(Ljava/lang/String;)Ljava/util/Locale$Builder;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Locale$Builder;->build()Ljava/util/Locale;
move-result-object p0
goto :goto_e
.end method
.method public static toLanguage(Ljava/lang/String;)Ljava/lang/String;
.registers 3
const/16 v0, 0x2d
invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(I)I
move-result v0
if-gez v0, :cond_9
:goto_8
return-object p0
:cond_9
const/4 v1, 0x0
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
goto :goto_8
.end method
.method public static toLanguageTag(Ljava/util/Locale;)Ljava/lang/String;
.registers 5
invoke-virtual {p0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Laegon/chrome/base/LocaleUtils;->getUpdatedLanguageForChromium(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {p0}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object v1
const-string v2, "no"
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2b
const-string v2, "NO"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2b
invoke-virtual {p0}, Ljava/util/Locale;->getVariant()Ljava/lang/String;
move-result-object v2
const-string v3, "NY"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2b
const-string v0, "nn-NO"
:cond_2a
:goto_2a
return-object v0
:cond_2b
invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z
move-result v2
if-nez v2, :cond_2a
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "-"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_2a
.end method
.method public static toLanguageTags(Landroid/os/LocaleList;)Ljava/lang/String;
.registers 4
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
const/4 v0, 0x0
:goto_6
invoke-virtual {p0}, Landroid/os/LocaleList;->size()I
move-result v2
if-ge v0, v2, :cond_1e
invoke-virtual {p0, v0}, Landroid/os/LocaleList;->get(I)Ljava/util/Locale;
move-result-object v2
invoke-static {v2}, Laegon/chrome/base/LocaleUtils;->getUpdatedLocaleForChromium(Ljava/util/Locale;)Ljava/util/Locale;
move-result-object v2
invoke-static {v2}, Laegon/chrome/base/LocaleUtils;->toLanguageTag(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v0, v0, 0x1
goto :goto_6
:cond_1e
const-string v0, ","
invoke-static {v0, v1}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method