UrlUtils.smali
.class public final Lio/fabric/sdk/android/services/network/UrlUtils;
.super Ljava/lang/Object;
.source "UrlUtils.java"
# static fields
.field public static final UTF8:Ljava/lang/String; = "UTF8"
# direct methods
.method private constructor <init>()V
.registers 1
.line 32
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getQueryParams(Ljava/lang/String;Z)Ljava/util/TreeMap;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Z)",
"Ljava/util/TreeMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 40
new-instance v0, Ljava/util/TreeMap;
invoke-direct {v0}, Ljava/util/TreeMap;-><init>()V
if-nez p0, :cond_8
return-object v0
:cond_8
const-string v1, "&"
.line 44
invoke-virtual {p0, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object p0
array-length v1, p0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_11
if-ge v3, v1, :cond_58
aget-object v4, p0, v3
const-string v5, "="
.line 45
invoke-virtual {v4, v5}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v4
.line 46
array-length v5, v4
const/4 v6, 0x2
if-ne v5, v6, :cond_3a
const/4 v5, 0x1
if-eqz p1, :cond_32
.line 48
aget-object v6, v4, v2
invoke-static {v6}, Lio/fabric/sdk/android/services/network/UrlUtils;->urlDecode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
aget-object v4, v4, v5
invoke-static {v4}, Lio/fabric/sdk/android/services/network/UrlUtils;->urlDecode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v0, v6, v4}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_55
.line 51
:cond_32
aget-object v6, v4, v2
aget-object v4, v4, v5
invoke-virtual {v0, v6, v4}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_55
.line 53
:cond_3a
aget-object v5, v4, v2
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-nez v5, :cond_55
const-string v5, ""
if-eqz p1, :cond_50
.line 55
aget-object v4, v4, v2
invoke-static {v4}, Lio/fabric/sdk/android/services/network/UrlUtils;->urlDecode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v0, v4, v5}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_55
.line 57
:cond_50
aget-object v4, v4, v2
invoke-virtual {v0, v4, v5}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_55
:goto_55
add-int/lit8 v3, v3, 0x1
goto :goto_11
:cond_58
return-object v0
.end method
.method public static getQueryParams(Ljava/net/URI;Z)Ljava/util/TreeMap;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/net/URI;",
"Z)",
"Ljava/util/TreeMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 36
invoke-virtual {p0}, Ljava/net/URI;->getRawQuery()Ljava/lang/String;
move-result-object p0
invoke-static {p0, p1}, Lio/fabric/sdk/android/services/network/UrlUtils;->getQueryParams(Ljava/lang/String;Z)Ljava/util/TreeMap;
move-result-object p0
return-object p0
.end method
.method public static percentEncode(Ljava/lang/String;)Ljava/lang/String;
.registers 8
if-nez p0, :cond_5
const-string p0, ""
return-object p0
.line 101
:cond_5
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 102
invoke-static {p0}, Lio/fabric/sdk/android/services/network/UrlUtils;->urlEncode(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
.line 103
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
const/4 v2, 0x0
:goto_13
if-ge v2, v1, :cond_54
.line 105
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
const/16 v4, 0x2a
if-ne v3, v4, :cond_23
const-string v3, "%2A"
.line 107
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_51
:cond_23
const/16 v4, 0x2b
if-ne v3, v4, :cond_2d
const-string v3, "%20"
.line 109
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_51
:cond_2d
const/16 v4, 0x25
if-ne v3, v4, :cond_4e
add-int/lit8 v4, v2, 0x2
if-ge v4, v1, :cond_4e
add-int/lit8 v5, v2, 0x1
.line 110
invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
const/16 v6, 0x37
if-ne v5, v6, :cond_4e
invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
const/16 v6, 0x45
if-ne v5, v6, :cond_4e
const/16 v2, 0x7e
.line 113
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move v2, v4
goto :goto_51
.line 116
:cond_4e
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_51
add-int/lit8 v2, v2, 0x1
goto :goto_13
.line 119
:cond_54
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static urlDecode(Ljava/lang/String;)Ljava/lang/String;
.registers 3
if-nez p0, :cond_5
const-string p0, ""
return-object p0
:cond_5
:try_start_5
const-string v0, "UTF8"
.line 80
invoke-static {p0, v0}, Ljava/net/URLDecoder;->decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
:try_end_b
.catch Ljava/io/UnsupportedEncodingException; {:try_start_5 .. :try_end_b} :catch_c
return-object p0
:catch_c
move-exception p0
.line 82
new-instance v0, Ljava/lang/RuntimeException;
invoke-virtual {p0}, Ljava/io/UnsupportedEncodingException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
.method public static urlEncode(Ljava/lang/String;)Ljava/lang/String;
.registers 3
if-nez p0, :cond_5
const-string p0, ""
return-object p0
:cond_5
:try_start_5
const-string v0, "UTF8"
.line 69
invoke-static {p0, v0}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
:try_end_b
.catch Ljava/io/UnsupportedEncodingException; {:try_start_5 .. :try_end_b} :catch_c
return-object p0
:catch_c
move-exception p0
.line 71
new-instance v0, Ljava/lang/RuntimeException;
invoke-virtual {p0}, Ljava/io/UnsupportedEncodingException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method