Util.smali
.class public Lcom/google/firebase/storage/internal/Util;
.super Ljava/lang/Object;
# direct methods
.method public static a(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 2
invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/Objects;->a(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p0
return p0
.end method
.method private static b()Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/os/RemoteException;
}
.end annotation
invoke-static {}, Lcom/google/firebase/storage/network/NetworkRequest;->e()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static c(Lcom/google/firebase/auth/internal/InternalAuthProvider;)Ljava/lang/String;
.registers 6
const-string v0, "StorageUtil"
const/4 v1, 0x0
if-eqz p0, :cond_19
const/4 v2, 0x0
:try_start_6
invoke-interface {p0, v2}, Lcom/google/firebase/auth/internal/InternalAuthProvider;->a(Z)Lcom/google/android/gms/tasks/Task;
move-result-object p0
const-wide/16 v2, 0x7530
sget-object v4, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {p0, v2, v3, v4}, Lcom/google/android/gms/tasks/Tasks;->b(Lcom/google/android/gms/tasks/Task;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lcom/google/firebase/auth/GetTokenResult;
invoke-virtual {p0}, Lcom/google/firebase/auth/GetTokenResult;->a()Ljava/lang/String;
move-result-object p0
goto :goto_1a
:cond_19
move-object p0, v1
:goto_1a
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_21
return-object p0
:cond_21
const-string p0, "no auth token for request"
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_26
.catch Ljava/util/concurrent/ExecutionException; {:try_start_6 .. :try_end_26} :catch_2b
.catch Ljava/lang/InterruptedException; {:try_start_6 .. :try_end_26} :catch_29
.catch Ljava/util/concurrent/TimeoutException; {:try_start_6 .. :try_end_26} :catch_27
goto :goto_40
:catch_27
move-exception p0
goto :goto_2c
:catch_29
move-exception p0
goto :goto_2c
:catch_2b
move-exception p0
:goto_2c
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "error getting token "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:goto_40
return-object v1
.end method
.method public static d(Lcom/google/firebase/FirebaseApp;Ljava/lang/String;)Landroid/net/Uri;
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/UnsupportedEncodingException;
}
.end annotation
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p0
if-eqz p0, :cond_8
const/4 p0, 0x0
return-object p0
:cond_8
invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object p0
const-string v0, "gs://"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result p0
if-eqz p0, :cond_35
const/4 p0, 0x5
invoke-virtual {p1, p0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Lcom/google/firebase/storage/internal/Slashes;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Lcom/google/firebase/storage/internal/Slashes;->b(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object p0
return-object p0
:cond_35
invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object p0
invoke-virtual {p0}, Landroid/net/Uri;->getScheme()Ljava/lang/String;
move-result-object p1
const-string v0, "StorageUtil"
if-eqz p1, :cond_e9
invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
const-string v2, "http"
invoke-static {v1, v2}, Lcom/google/firebase/storage/internal/Util;->a(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_59
invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
const-string v2, "https"
invoke-static {v1, v2}, Lcom/google/firebase/storage/internal/Util;->a(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_e9
:cond_59
invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object p1
:try_start_61
invoke-static {}, Lcom/google/firebase/storage/internal/Util;->b()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result p1
:try_end_69
.catch Landroid/os/RemoteException; {:try_start_61 .. :try_end_69} :catch_e1
invoke-virtual {p0}, Landroid/net/Uri;->getEncodedPath()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lcom/google/firebase/storage/internal/Slashes;->c(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const/4 v2, 0x0
const-string v3, "Firebase Storage URLs must point to an object in your Storage Bucket. Please obtain a URL using the Firebase Console or getDownloadUrl()."
if-nez p1, :cond_af
const-string v4, "/"
invoke-virtual {v1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_af
const-string p0, "/b/"
invoke-virtual {v1, p0, v2}, Ljava/lang/String;->indexOf(Ljava/lang/String;I)I
move-result p0
add-int/lit8 p1, p0, 0x3
invoke-virtual {v1, v4, p1}, Ljava/lang/String;->indexOf(Ljava/lang/String;I)I
move-result v4
const-string v5, "/o/"
invoke-virtual {v1, v5, v2}, Ljava/lang/String;->indexOf(Ljava/lang/String;I)I
move-result v2
const/4 v5, -0x1
if-eq p0, v5, :cond_a6
if-eq v4, v5, :cond_a6
invoke-virtual {v1, p1, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
if-eq v2, v5, :cond_a2
add-int/lit8 v2, v2, 0x3
invoke-virtual {v1, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p1
goto :goto_a4
:cond_a2
const-string p1, ""
:goto_a4
move-object v1, p1
goto :goto_bb
:cond_a6
invoke-static {v0, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
new-instance p0, Ljava/lang/IllegalArgumentException;
invoke-direct {p0, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
:cond_af
const/4 v4, 0x1
if-le p1, v4, :cond_d8
invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
move-result-object p0
sub-int/2addr p1, v4
invoke-virtual {p0, v2, p1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
:goto_bb
const-string p1, "No bucket specified"
invoke-static {p0, p1}, Lcom/google/android/gms/common/internal/Preconditions;->h(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
new-instance p1, Landroid/net/Uri$Builder;
invoke-direct {p1}, Landroid/net/Uri$Builder;-><init>()V
const-string v0, "gs"
invoke-virtual {p1, v0}, Landroid/net/Uri$Builder;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object p1
invoke-virtual {p1, p0}, Landroid/net/Uri$Builder;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object p0
invoke-virtual {p0, v1}, Landroid/net/Uri$Builder;->encodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;
move-result-object p0
invoke-virtual {p0}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri;
move-result-object p0
return-object p0
:cond_d8
invoke-static {v0, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
new-instance p0, Ljava/lang/IllegalArgumentException;
invoke-direct {p0, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
:catch_e1
new-instance p0, Ljava/io/UnsupportedEncodingException;
const-string p1, "Could not parse Url because the Storage network layer did not load"
invoke-direct {p0, p1}, Ljava/io/UnsupportedEncodingException;-><init>(Ljava/lang/String;)V
throw p0
:cond_e9
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "FirebaseStorage is unable to support the scheme:"
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
new-instance p0, Ljava/lang/IllegalArgumentException;
const-string p1, "Uri scheme"
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
.end method