UploadTask.smali
.class public Lcom/google/firebase/storage/UploadTask;
.super Lcom/google/firebase/storage/StorageTask;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/firebase/storage/UploadTask$TaskSnapshot;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/firebase/storage/StorageTask<",
"Lcom/google/firebase/storage/UploadTask$TaskSnapshot;",
">;"
}
.end annotation
# instance fields
.field private final l:Lcom/google/firebase/storage/StorageReference;
.field private final m:Landroid/net/Uri;
.field private final n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
.field private final o:Ljava/util/concurrent/atomic/AtomicLong;
.field private final p:Lcom/google/firebase/auth/internal/InternalAuthProvider;
.field private q:I
.field private r:Lcom/google/firebase/storage/internal/ExponentialBackoffSender;
.field private s:Z
.field private volatile t:Lcom/google/firebase/storage/StorageMetadata;
.field private volatile u:Landroid/net/Uri;
.field private volatile v:Ljava/lang/Exception;
.field private volatile w:Ljava/lang/Exception;
.field private volatile x:I
.field private volatile y:Ljava/lang/String;
# direct methods
.method constructor <init>(Lcom/google/firebase/storage/StorageReference;Lcom/google/firebase/storage/StorageMetadata;[B)V
.registers 8
invoke-direct {p0}, Lcom/google/firebase/storage/StorageTask;-><init>()V
new-instance v0, Ljava/util/concurrent/atomic/AtomicLong;
const-wide/16 v1, 0x0
invoke-direct {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;-><init>(J)V
iput-object v0, p0, Lcom/google/firebase/storage/UploadTask;->o:Ljava/util/concurrent/atomic/AtomicLong;
const/high16 v0, 0x40000
iput v0, p0, Lcom/google/firebase/storage/UploadTask;->q:I
const/4 v1, 0x0
iput-object v1, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
iput-object v1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
iput-object v1, p0, Lcom/google/firebase/storage/UploadTask;->w:Ljava/lang/Exception;
const/4 v2, 0x0
iput v2, p0, Lcom/google/firebase/storage/UploadTask;->x:I
invoke-static {p1}, Lcom/google/android/gms/common/internal/Preconditions;->k(Ljava/lang/Object;)Ljava/lang/Object;
invoke-static {p3}, Lcom/google/android/gms/common/internal/Preconditions;->k(Ljava/lang/Object;)Ljava/lang/Object;
invoke-virtual {p1}, Lcom/google/firebase/storage/StorageReference;->n()Lcom/google/firebase/storage/FirebaseStorage;
move-result-object v2
array-length v3, p3
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
iput-object p2, p0, Lcom/google/firebase/storage/UploadTask;->t:Lcom/google/firebase/storage/StorageMetadata;
invoke-virtual {v2}, Lcom/google/firebase/storage/FirebaseStorage;->b()Lcom/google/firebase/auth/internal/InternalAuthProvider;
move-result-object p1
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->p:Lcom/google/firebase/auth/internal/InternalAuthProvider;
iput-object v1, p0, Lcom/google/firebase/storage/UploadTask;->m:Landroid/net/Uri;
new-instance p1, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
new-instance p2, Ljava/io/ByteArrayInputStream;
invoke-direct {p2, p3}, Ljava/io/ByteArrayInputStream;-><init>([B)V
invoke-direct {p1, p2, v0}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;-><init>(Ljava/io/InputStream;I)V
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
const/4 p1, 0x1
iput-boolean p1, p0, Lcom/google/firebase/storage/UploadTask;->s:Z
new-instance p1, Lcom/google/firebase/storage/internal/ExponentialBackoffSender;
invoke-virtual {v2}, Lcom/google/firebase/storage/FirebaseStorage;->a()Lcom/google/firebase/FirebaseApp;
move-result-object p2
invoke-virtual {p2}, Lcom/google/firebase/FirebaseApp;->g()Landroid/content/Context;
move-result-object p2
invoke-virtual {v2}, Lcom/google/firebase/storage/FirebaseStorage;->b()Lcom/google/firebase/auth/internal/InternalAuthProvider;
move-result-object p3
invoke-virtual {v2}, Lcom/google/firebase/storage/FirebaseStorage;->g()J
move-result-wide v0
invoke-direct {p1, p2, p3, v0, v1}, Lcom/google/firebase/storage/internal/ExponentialBackoffSender;-><init>(Landroid/content/Context;Lcom/google/firebase/auth/internal/InternalAuthProvider;J)V
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->r:Lcom/google/firebase/storage/internal/ExponentialBackoffSender;
return-void
.end method
.method static synthetic l0(Lcom/google/firebase/storage/UploadTask;)Lcom/google/firebase/auth/internal/InternalAuthProvider;
.registers 1
iget-object p0, p0, Lcom/google/firebase/storage/UploadTask;->p:Lcom/google/firebase/auth/internal/InternalAuthProvider;
return-object p0
.end method
.method static synthetic m0(Lcom/google/firebase/storage/UploadTask;)Lcom/google/firebase/storage/StorageReference;
.registers 1
iget-object p0, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
return-object p0
.end method
.method private n0()V
.registers 7
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->t:Lcom/google/firebase/storage/StorageMetadata;
const/4 v1, 0x0
if-eqz v0, :cond_c
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->t:Lcom/google/firebase/storage/StorageMetadata;
invoke-virtual {v0}, Lcom/google/firebase/storage/StorageMetadata;->v()Ljava/lang/String;
move-result-object v0
goto :goto_d
:cond_c
move-object v0, v1
:goto_d
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->m:Landroid/net/Uri;
if-eqz v2, :cond_2f
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_2f
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v0}, Lcom/google/firebase/storage/StorageReference;->n()Lcom/google/firebase/storage/FirebaseStorage;
move-result-object v0
invoke-virtual {v0}, Lcom/google/firebase/storage/FirebaseStorage;->a()Lcom/google/firebase/FirebaseApp;
move-result-object v0
invoke-virtual {v0}, Lcom/google/firebase/FirebaseApp;->g()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->m:Landroid/net/Uri;
invoke-virtual {v0, v2}, Landroid/content/ContentResolver;->getType(Landroid/net/Uri;)Ljava/lang/String;
move-result-object v0
:cond_2f
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_37
const-string v0, "application/octet-stream"
:cond_37
new-instance v2, Lcom/google/firebase/storage/network/ResumableUploadStartRequest;
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v3}, Lcom/google/firebase/storage/StorageReference;->o()Landroid/net/Uri;
move-result-object v3
iget-object v4, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v4}, Lcom/google/firebase/storage/StorageReference;->j()Lcom/google/firebase/FirebaseApp;
move-result-object v4
iget-object v5, p0, Lcom/google/firebase/storage/UploadTask;->t:Lcom/google/firebase/storage/StorageMetadata;
if-eqz v5, :cond_4f
iget-object v1, p0, Lcom/google/firebase/storage/UploadTask;->t:Lcom/google/firebase/storage/StorageMetadata;
invoke-virtual {v1}, Lcom/google/firebase/storage/StorageMetadata;->q()Lorg/json/JSONObject;
move-result-object v1
:cond_4f
invoke-direct {v2, v3, v4, v1, v0}, Lcom/google/firebase/storage/network/ResumableUploadStartRequest;-><init>(Landroid/net/Uri;Lcom/google/firebase/FirebaseApp;Lorg/json/JSONObject;Ljava/lang/String;)V
invoke-direct {p0, v2}, Lcom/google/firebase/storage/UploadTask;->s0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
move-result v0
if-nez v0, :cond_59
return-void
:cond_59
const-string v0, "X-Goog-Upload-URL"
invoke-virtual {v2, v0}, Lcom/google/firebase/storage/network/NetworkRequest;->r(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_6b
invoke-static {v0}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v0
iput-object v0, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
:cond_6b
return-void
.end method
.method private o0(I)Z
.registers 3
const/16 v0, 0x134
if-eq p1, v0, :cond_f
const/16 v0, 0xc8
if-lt p1, v0, :cond_d
const/16 v0, 0x12c
if-ge p1, v0, :cond_d
goto :goto_f
:cond_d
const/4 p1, 0x0
goto :goto_10
:cond_f
:goto_f
const/4 p1, 0x1
:goto_10
return p1
.end method
.method private p0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
.registers 4
invoke-virtual {p1}, Lcom/google/firebase/storage/network/NetworkRequest;->p()I
move-result v0
iget-object v1, p0, Lcom/google/firebase/storage/UploadTask;->r:Lcom/google/firebase/storage/internal/ExponentialBackoffSender;
invoke-virtual {v1, v0}, Lcom/google/firebase/storage/internal/ExponentialBackoffSender;->b(I)Z
move-result v1
if-eqz v1, :cond_d
const/4 v0, -0x2
:cond_d
iput v0, p0, Lcom/google/firebase/storage/UploadTask;->x:I
invoke-virtual {p1}, Lcom/google/firebase/storage/network/NetworkRequest;->f()Ljava/lang/Exception;
move-result-object v0
iput-object v0, p0, Lcom/google/firebase/storage/UploadTask;->w:Ljava/lang/Exception;
const-string v0, "X-Goog-Upload-Status"
invoke-virtual {p1, v0}, Lcom/google/firebase/storage/network/NetworkRequest;->r(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->y:Ljava/lang/String;
iget p1, p0, Lcom/google/firebase/storage/UploadTask;->x:I
invoke-direct {p0, p1}, Lcom/google/firebase/storage/UploadTask;->o0(I)Z
move-result p1
if-eqz p1, :cond_2b
iget-object p1, p0, Lcom/google/firebase/storage/UploadTask;->w:Ljava/lang/Exception;
if-nez p1, :cond_2b
const/4 p1, 0x1
goto :goto_2c
:cond_2b
const/4 p1, 0x0
:goto_2c
return p1
.end method
.method private q0(Z)Z
.registers 13
const-string v0, "UploadTask"
new-instance v1, Lcom/google/firebase/storage/network/ResumableUploadQueryRequest;
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v2}, Lcom/google/firebase/storage/StorageReference;->o()Landroid/net/Uri;
move-result-object v2
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v3}, Lcom/google/firebase/storage/StorageReference;->j()Lcom/google/firebase/FirebaseApp;
move-result-object v3
iget-object v4, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
invoke-direct {v1, v2, v3, v4}, Lcom/google/firebase/storage/network/ResumableUploadQueryRequest;-><init>(Landroid/net/Uri;Lcom/google/firebase/FirebaseApp;Landroid/net/Uri;)V
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->y:Ljava/lang/String;
const-string v3, "final"
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
const/4 v4, 0x0
if-eqz v2, :cond_21
return v4
:cond_21
if-eqz p1, :cond_2a
invoke-direct {p0, v1}, Lcom/google/firebase/storage/UploadTask;->s0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
move-result p1
if-nez p1, :cond_31
return v4
:cond_2a
invoke-direct {p0, v1}, Lcom/google/firebase/storage/UploadTask;->r0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
move-result p1
if-nez p1, :cond_31
return v4
:cond_31
const-string p1, "X-Goog-Upload-Status"
invoke-virtual {v1, p1}, Lcom/google/firebase/storage/network/NetworkRequest;->r(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_47
new-instance p1, Ljava/io/IOException;
const-string v0, "The server has terminated the upload session"
invoke-direct {p1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
return v4
:cond_47
const-string p1, "X-Goog-Upload-Size-Received"
invoke-virtual {v1, p1}, Lcom/google/firebase/storage/network/NetworkRequest;->r(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_58
invoke-static {p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v1
goto :goto_5a
:cond_58
const-wide/16 v1, 0x0
:goto_5a
iget-object p1, p0, Lcom/google/firebase/storage/UploadTask;->o:Ljava/util/concurrent/atomic/AtomicLong;
invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v5
cmp-long p1, v5, v1
if-lez p1, :cond_6e
new-instance p1, Ljava/io/IOException;
const-string v0, "Unexpected error. The server lost a chunk update."
invoke-direct {p1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
return v4
:cond_6e
if-gez p1, :cond_a8
:try_start_70
iget-object p1, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
sub-long v7, v1, v5
long-to-int v3, v7
invoke-virtual {p1, v3}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->a(I)I
move-result p1
int-to-long v9, p1
cmp-long p1, v9, v7
if-eqz p1, :cond_88
new-instance p1, Ljava/io/IOException;
const-string v1, "Unexpected end of stream encountered."
invoke-direct {p1, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
return v4
:cond_88
iget-object p1, p0, Lcom/google/firebase/storage/UploadTask;->o:Ljava/util/concurrent/atomic/AtomicLong;
invoke-virtual {p1, v5, v6, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;->compareAndSet(JJ)Z
move-result p1
if-nez p1, :cond_a8
const-string p1, "Somehow, the uploaded bytes changed during an uploaded. This should nothappen"
invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
new-instance p1, Ljava/lang/IllegalStateException;
const-string v1, "uploaded bytes changed unexpectedly."
invoke-direct {p1, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
:try_end_9e
.catch Ljava/io/IOException; {:try_start_70 .. :try_end_9e} :catch_9f
return v4
:catch_9f
move-exception p1
const-string v1, "Unable to recover position in Stream during resumable upload"
invoke-static {v0, v1, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
iput-object p1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
return v4
:cond_a8
const/4 p1, 0x1
return p1
.end method
.method private r0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
.registers 4
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->p:Lcom/google/firebase/auth/internal/InternalAuthProvider;
invoke-static {v0}, Lcom/google/firebase/storage/internal/Util;->c(Lcom/google/firebase/auth/internal/InternalAuthProvider;)Ljava/lang/String;
move-result-object v0
iget-object v1, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v1}, Lcom/google/firebase/storage/StorageReference;->j()Lcom/google/firebase/FirebaseApp;
move-result-object v1
invoke-virtual {v1}, Lcom/google/firebase/FirebaseApp;->g()Landroid/content/Context;
move-result-object v1
invoke-virtual {p1, v0, v1}, Lcom/google/firebase/storage/network/NetworkRequest;->z(Ljava/lang/String;Landroid/content/Context;)V
invoke-direct {p0, p1}, Lcom/google/firebase/storage/UploadTask;->p0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
move-result p1
return p1
.end method
.method private s0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
.registers 3
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->r:Lcom/google/firebase/storage/internal/ExponentialBackoffSender;
invoke-virtual {v0, p1}, Lcom/google/firebase/storage/internal/ExponentialBackoffSender;->d(Lcom/google/firebase/storage/network/NetworkRequest;)V
invoke-direct {p0, p1}, Lcom/google/firebase/storage/UploadTask;->p0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
move-result p1
return p1
.end method
.method private t0()Z
.registers 4
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->y:Ljava/lang/String;
const-string v1, "final"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_20
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
if-nez v0, :cond_19
new-instance v0, Ljava/io/IOException;
iget-object v1, p0, Lcom/google/firebase/storage/UploadTask;->w:Ljava/lang/Exception;
const-string v2, "The server has terminated the upload session"
invoke-direct {v0, v2, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
iput-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
:cond_19
const/16 v0, 0x40
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
return v1
:cond_20
const/4 v0, 0x1
return v0
.end method
.method private u0()Z
.registers 6
invoke-virtual {p0}, Lcom/google/firebase/storage/StorageTask;->G()I
move-result v0
const/4 v1, 0x0
const/16 v2, 0x80
if-ne v0, v2, :cond_a
return v1
:cond_a
invoke-static {}, Ljava/lang/Thread;->interrupted()Z
move-result v0
const/16 v2, 0x40
if-eqz v0, :cond_1d
new-instance v0, Ljava/lang/InterruptedException;
invoke-direct {v0}, Ljava/lang/InterruptedException;-><init>()V
iput-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
invoke-virtual {p0, v2, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
return v1
:cond_1d
invoke-virtual {p0}, Lcom/google/firebase/storage/StorageTask;->G()I
move-result v0
const/16 v3, 0x20
if-ne v0, v3, :cond_2b
const/16 v0, 0x100
invoke-virtual {p0, v0, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
return v1
:cond_2b
invoke-virtual {p0}, Lcom/google/firebase/storage/StorageTask;->G()I
move-result v0
const/16 v3, 0x8
if-ne v0, v3, :cond_39
const/16 v0, 0x10
invoke-virtual {p0, v0, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
return v1
:cond_39
invoke-direct {p0}, Lcom/google/firebase/storage/UploadTask;->t0()Z
move-result v0
if-nez v0, :cond_40
return v1
:cond_40
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
if-nez v0, :cond_55
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
if-nez v0, :cond_51
new-instance v0, Ljava/lang/IllegalStateException;
const-string v3, "Unable to obtain an upload URL."
invoke-direct {v0, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
iput-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
:cond_51
invoke-virtual {p0, v2, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
return v1
:cond_55
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
if-eqz v0, :cond_5d
invoke-virtual {p0, v2, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
return v1
:cond_5d
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->w:Ljava/lang/Exception;
const/4 v3, 0x1
if-nez v0, :cond_71
iget v0, p0, Lcom/google/firebase/storage/UploadTask;->x:I
const/16 v4, 0xc8
if-lt v0, v4, :cond_71
iget v0, p0, Lcom/google/firebase/storage/UploadTask;->x:I
const/16 v4, 0x12c
if-lt v0, v4, :cond_6f
goto :goto_71
:cond_6f
const/4 v0, 0x0
goto :goto_72
:cond_71
:goto_71
const/4 v0, 0x1
:goto_72
if-eqz v0, :cond_84
invoke-direct {p0, v3}, Lcom/google/firebase/storage/UploadTask;->q0(Z)Z
move-result v0
if-nez v0, :cond_84
invoke-direct {p0}, Lcom/google/firebase/storage/UploadTask;->t0()Z
move-result v0
if-eqz v0, :cond_83
invoke-virtual {p0, v2, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
:cond_83
return v1
:cond_84
return v3
.end method
.method private w0()V
.registers 13
const-string v0, "UploadTask"
:try_start_2
iget-object v1, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
iget v2, p0, Lcom/google/firebase/storage/UploadTask;->q:I
invoke-virtual {v1, v2}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->d(I)I
iget v1, p0, Lcom/google/firebase/storage/UploadTask;->q:I
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
invoke-virtual {v2}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->b()I
move-result v2
invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I
move-result v1
new-instance v2, Lcom/google/firebase/storage/network/ResumableUploadByteRequest;
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v3}, Lcom/google/firebase/storage/StorageReference;->o()Landroid/net/Uri;
move-result-object v4
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v3}, Lcom/google/firebase/storage/StorageReference;->j()Lcom/google/firebase/FirebaseApp;
move-result-object v5
iget-object v6, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
invoke-virtual {v3}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->e()[B
move-result-object v7
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->o:Ljava/util/concurrent/atomic/AtomicLong;
invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v8
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
invoke-virtual {v3}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->f()Z
move-result v11
move-object v3, v2
move v10, v1
invoke-direct/range {v3 .. v11}, Lcom/google/firebase/storage/network/ResumableUploadByteRequest;-><init>(Landroid/net/Uri;Lcom/google/firebase/FirebaseApp;Landroid/net/Uri;[BJIZ)V
invoke-direct {p0, v2}, Lcom/google/firebase/storage/UploadTask;->r0(Lcom/google/firebase/storage/network/NetworkRequest;)Z
move-result v3
if-nez v3, :cond_5d
const/high16 v1, 0x40000
iput v1, p0, Lcom/google/firebase/storage/UploadTask;->q:I
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Resetting chunk size to "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/google/firebase/storage/UploadTask;->q:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_5d
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->o:Ljava/util/concurrent/atomic/AtomicLong;
int-to-long v4, v1
invoke-virtual {v3, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;->getAndAdd(J)J
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
invoke-virtual {v3}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->f()Z
move-result v3
if-nez v3, :cond_93
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
invoke-virtual {v2, v1}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->a(I)I
iget v1, p0, Lcom/google/firebase/storage/UploadTask;->q:I
const/high16 v2, 0x2000000
if-ge v1, v2, :cond_d3
iget v1, p0, Lcom/google/firebase/storage/UploadTask;->q:I
mul-int/lit8 v1, v1, 0x2
iput v1, p0, Lcom/google/firebase/storage/UploadTask;->q:I
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Increasing chunk size to "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/google/firebase/storage/UploadTask;->q:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:try_end_92
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_92} :catch_cb
goto :goto_d3
:cond_93
:try_start_93
new-instance v1, Lcom/google/firebase/storage/StorageMetadata$Builder;
invoke-virtual {v2}, Lcom/google/firebase/storage/network/NetworkRequest;->o()Lorg/json/JSONObject;
move-result-object v3
iget-object v4, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-direct {v1, v3, v4}, Lcom/google/firebase/storage/StorageMetadata$Builder;-><init>(Lorg/json/JSONObject;Lcom/google/firebase/storage/StorageReference;)V
invoke-virtual {v1}, Lcom/google/firebase/storage/StorageMetadata$Builder;->a()Lcom/google/firebase/storage/StorageMetadata;
move-result-object v1
iput-object v1, p0, Lcom/google/firebase/storage/UploadTask;->t:Lcom/google/firebase/storage/StorageMetadata;
:try_end_a4
.catch Lorg/json/JSONException; {:try_start_93 .. :try_end_a4} :catch_af
.catch Ljava/io/IOException; {:try_start_93 .. :try_end_a4} :catch_cb
const/4 v1, 0x4
const/4 v2, 0x0
:try_start_a6
invoke-virtual {p0, v1, v2}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
const/16 v1, 0x80
invoke-virtual {p0, v1, v2}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
goto :goto_d3
:catch_af
move-exception v1
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unable to parse resulting metadata from upload:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Lcom/google/firebase/storage/network/NetworkRequest;->n()Ljava/lang/String;
move-result-object v2
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v2, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
iput-object v1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
:try_end_ca
.catch Ljava/io/IOException; {:try_start_a6 .. :try_end_ca} :catch_cb
return-void
:catch_cb
move-exception v1
const-string v2, "Unable to read bytes for uploading"
invoke-static {v0, v2, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
iput-object v1, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
:cond_d3
:goto_d3
return-void
.end method
# virtual methods
.method M()Lcom/google/firebase/storage/StorageReference;
.registers 2
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
return-object v0
.end method
.method protected X()V
.registers 5
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->r:Lcom/google/firebase/storage/internal/ExponentialBackoffSender;
invoke-virtual {v0}, Lcom/google/firebase/storage/internal/ExponentialBackoffSender;->a()V
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
if-eqz v0, :cond_1d
new-instance v0, Lcom/google/firebase/storage/network/ResumableUploadCancelRequest;
iget-object v1, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v1}, Lcom/google/firebase/storage/StorageReference;->o()Landroid/net/Uri;
move-result-object v1
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v2}, Lcom/google/firebase/storage/StorageReference;->j()Lcom/google/firebase/FirebaseApp;
move-result-object v2
iget-object v3, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
invoke-direct {v0, v1, v2, v3}, Lcom/google/firebase/storage/network/ResumableUploadCancelRequest;-><init>(Landroid/net/Uri;Lcom/google/firebase/FirebaseApp;Landroid/net/Uri;)V
goto :goto_1e
:cond_1d
const/4 v0, 0x0
:goto_1e
if-eqz v0, :cond_2c
invoke-static {}, Lcom/google/firebase/storage/StorageTaskScheduler;->a()Lcom/google/firebase/storage/StorageTaskScheduler;
move-result-object v1
new-instance v2, Lcom/google/firebase/storage/UploadTask$1;
invoke-direct {v2, p0, v0}, Lcom/google/firebase/storage/UploadTask$1;-><init>(Lcom/google/firebase/storage/UploadTask;Lcom/google/firebase/storage/network/NetworkRequest;)V
invoke-virtual {v1, v2}, Lcom/google/firebase/storage/StorageTaskScheduler;->c(Ljava/lang/Runnable;)V
:cond_2c
sget-object v0, Lcom/google/android/gms/common/api/Status;->n:Lcom/google/android/gms/common/api/Status;
invoke-static {v0}, Lcom/google/firebase/storage/StorageException;->c(Lcom/google/android/gms/common/api/Status;)Lcom/google/firebase/storage/StorageException;
move-result-object v0
iput-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
invoke-super {p0}, Lcom/google/firebase/storage/StorageTask;->X()V
return-void
.end method
.method e0()V
.registers 6
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->r:Lcom/google/firebase/storage/internal/ExponentialBackoffSender;
invoke-virtual {v0}, Lcom/google/firebase/storage/internal/ExponentialBackoffSender;->c()V
const/4 v0, 0x4
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
move-result v2
const-string v3, "UploadTask"
if-nez v2, :cond_15
const-string v0, "The upload cannot continue as it is not in a valid state."
invoke-static {v3, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_15
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->l:Lcom/google/firebase/storage/StorageReference;
invoke-virtual {v2}, Lcom/google/firebase/storage/StorageReference;->k()Lcom/google/firebase/storage/StorageReference;
move-result-object v2
if-nez v2, :cond_26
new-instance v2, Ljava/lang/IllegalArgumentException;
const-string v4, "Cannot upload to getRoot. You should upload to a storage location such as .getReference(\'image.png\').putFile..."
invoke-direct {v2, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
iput-object v2, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
:cond_26
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
if-eqz v2, :cond_2b
return-void
:cond_2b
iget-object v2, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
if-nez v2, :cond_33
invoke-direct {p0}, Lcom/google/firebase/storage/UploadTask;->n0()V
goto :goto_36
:cond_33
invoke-direct {p0, v1}, Lcom/google/firebase/storage/UploadTask;->q0(Z)Z
:goto_36
invoke-direct {p0}, Lcom/google/firebase/storage/UploadTask;->u0()Z
move-result v2
:cond_3a
:goto_3a
if-eqz v2, :cond_49
invoke-direct {p0}, Lcom/google/firebase/storage/UploadTask;->w0()V
invoke-direct {p0}, Lcom/google/firebase/storage/UploadTask;->u0()Z
move-result v2
if-eqz v2, :cond_3a
invoke-virtual {p0, v0, v1}, Lcom/google/firebase/storage/StorageTask;->j0(IZ)Z
goto :goto_3a
:cond_49
iget-boolean v0, p0, Lcom/google/firebase/storage/UploadTask;->s:Z
if-eqz v0, :cond_61
invoke-virtual {p0}, Lcom/google/firebase/storage/StorageTask;->G()I
move-result v0
const/16 v1, 0x10
if-eq v0, v1, :cond_61
:try_start_55
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->n:Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;
invoke-virtual {v0}, Lcom/google/firebase/storage/internal/AdaptiveStreamBuffer;->c()V
:try_end_5a
.catch Ljava/io/IOException; {:try_start_55 .. :try_end_5a} :catch_5b
goto :goto_61
:catch_5b
move-exception v0
const-string v1, "Unable to close stream."
invoke-static {v3, v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:cond_61
:goto_61
return-void
.end method
.method protected f0()V
.registers 3
invoke-static {}, Lcom/google/firebase/storage/StorageTaskScheduler;->a()Lcom/google/firebase/storage/StorageTaskScheduler;
move-result-object v0
invoke-virtual {p0}, Lcom/google/firebase/storage/StorageTask;->J()Ljava/lang/Runnable;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/firebase/storage/StorageTaskScheduler;->d(Ljava/lang/Runnable;)V
return-void
.end method
.method bridge synthetic h0()Lcom/google/firebase/storage/StorageTask$ProvideError;
.registers 2
invoke-virtual {p0}, Lcom/google/firebase/storage/UploadTask;->v0()Lcom/google/firebase/storage/UploadTask$TaskSnapshot;
move-result-object v0
return-object v0
.end method
.method v0()Lcom/google/firebase/storage/UploadTask$TaskSnapshot;
.registers 10
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
if-eqz v0, :cond_7
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->v:Ljava/lang/Exception;
goto :goto_9
:cond_7
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->w:Ljava/lang/Exception;
:goto_9
new-instance v8, Lcom/google/firebase/storage/UploadTask$TaskSnapshot;
iget v1, p0, Lcom/google/firebase/storage/UploadTask;->x:I
invoke-static {v0, v1}, Lcom/google/firebase/storage/StorageException;->d(Ljava/lang/Throwable;I)Lcom/google/firebase/storage/StorageException;
move-result-object v3
iget-object v0, p0, Lcom/google/firebase/storage/UploadTask;->o:Ljava/util/concurrent/atomic/AtomicLong;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v4
iget-object v6, p0, Lcom/google/firebase/storage/UploadTask;->u:Landroid/net/Uri;
iget-object v7, p0, Lcom/google/firebase/storage/UploadTask;->t:Lcom/google/firebase/storage/StorageMetadata;
move-object v1, v8
move-object v2, p0
invoke-direct/range {v1 .. v7}, Lcom/google/firebase/storage/UploadTask$TaskSnapshot;-><init>(Lcom/google/firebase/storage/UploadTask;Ljava/lang/Exception;JLandroid/net/Uri;Lcom/google/firebase/storage/StorageMetadata;)V
return-object v8
.end method