g.smali
.class public Lcn/jpush/android/p/g;
.super Lcn/jpush/android/ab/e;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcn/jpush/android/p/g$a;
}
.end annotation
# instance fields
.field private a:Ljava/lang/String;
.field private b:I
.field private c:I
.field private d:I
.field private e:Ljava/lang/String;
.field private g:Ljava/lang/String;
.field private h:Lcn/jpush/android/p/g$a;
.field private volatile i:Z
.field private volatile j:Z
.field private volatile k:Z
.field private l:Z
.field private m:I
# direct methods
.method public constructor <init>(Lcn/jpush/android/p/d;IIILcn/jpush/android/p/g$a;)V
.registers 7
invoke-direct {p0}, Lcn/jpush/android/ab/e;-><init>()V
const-string v0, "InAppDownloadThread"
iput-object v0, p0, Lcn/jpush/android/p/g;->f:Ljava/lang/String;
iget-object v0, p1, Lcn/jpush/android/p/d;->b:Ljava/lang/String;
iput-object v0, p0, Lcn/jpush/android/p/g;->a:Ljava/lang/String;
iput p2, p0, Lcn/jpush/android/p/g;->b:I
iput p3, p0, Lcn/jpush/android/p/g;->c:I
iput p4, p0, Lcn/jpush/android/p/g;->d:I
invoke-virtual {p1}, Lcn/jpush/android/p/d;->a()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcn/jpush/android/p/g;->g:Ljava/lang/String;
invoke-virtual {p1}, Lcn/jpush/android/p/d;->b()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcn/jpush/android/p/g;->e:Ljava/lang/String;
iput-object p5, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget-boolean v0, p1, Lcn/jpush/android/p/d;->l:Z
if-eqz v0, :cond_2b
iget-boolean v0, p1, Lcn/jpush/android/p/d;->k:Z
if-eqz v0, :cond_2b
const/4 v0, 0x1
:goto_28
iput-boolean v0, p0, Lcn/jpush/android/p/g;->l:Z
return-void
:cond_2b
const/4 v0, 0x0
goto :goto_28
.end method
# virtual methods
.method public a()V
.registers 14
const/4 v2, 0x0
iget-boolean v0, p0, Lcn/jpush/android/p/g;->l:Z
if-eqz v0, :cond_116
iget v0, p0, Lcn/jpush/android/p/g;->c:I
:goto_7
const/4 v1, 0x0
move v6, v0
move v7, v2
:goto_a
:try_start_a
new-instance v8, Ljava/io/File;
iget-object v0, p0, Lcn/jpush/android/p/g;->e:Ljava/lang/String;
invoke-direct {v8, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
const/4 v0, 0x3
iput v0, p0, Lcn/jpush/android/p/g;->m:I
:try_end_14
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_14} :catch_2bb
.catch Ljava/lang/AssertionError; {:try_start_a .. :try_end_14} :catch_30c
const/4 v2, 0x0
const/4 v4, 0x0
const/4 v3, 0x0
:try_start_17
const-string v0, "InAppDownloadThread"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "start downloadUrl: "
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
iget-object v9, p0, Lcn/jpush/android/p/g;->a:Ljava/lang/String;
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v0, v5}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
new-instance v0, Ljava/net/URL;
iget-object v5, p0, Lcn/jpush/android/p/g;->a:Ljava/lang/String;
invoke-direct {v0, v5}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
move-result-object v0
check-cast v0, Ljava/net/HttpURLConnection;
:try_end_3e
.catch Ljava/lang/Throwable; {:try_start_17 .. :try_end_3e} :catch_407
.catchall {:try_start_17 .. :try_end_3e} :catchall_3f1
:try_start_3e
const-string v2, "GET"
invoke-virtual {v0, v2}, Ljava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V
const/16 v2, 0x3a98
invoke-virtual {v0, v2}, Ljava/net/HttpURLConnection;->setConnectTimeout(I)V
const/16 v2, 0x3a98
invoke-virtual {v0, v2}, Ljava/net/HttpURLConnection;->setReadTimeout(I)V
const-string v2, "Connection"
const-string v5, "Keep-Alive"
invoke-virtual {v0, v2, v5}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
const-string v2, "Charset"
const-string v5, "UTF-8"
invoke-virtual {v0, v2, v5}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
const-string v2, "Accept-Encoding"
const-string v5, "gzip, deflate"
invoke-virtual {v0, v2, v5}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
const/4 v2, 0x0
iget-boolean v5, p0, Lcn/jpush/android/p/g;->l:Z
if-eqz v5, :cond_b1
const-string v2, "Range"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "bytes="
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v9, "-"
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
iget v9, p0, Lcn/jpush/android/p/g;->d:I
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {v0, v2, v5}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
const-string v2, "InAppDownloadThread"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v9, "use range download, startPos: "
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v9, ", endPos: "
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
iget v9, p0, Lcn/jpush/android/p/g;->d:I
invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v2, v5}, Lcn/jpush/android/helper/Logger;->v(Ljava/lang/String;Ljava/lang/String;)V
move v2, v6
:cond_b1
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->connect()V
new-instance v5, Ljava/io/RandomAccessFile;
const-string v9, "rwd"
invoke-direct {v5, v8, v9}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
:try_end_bb
.catch Ljava/lang/Throwable; {:try_start_3e .. :try_end_bb} :catch_40f
.catchall {:try_start_3e .. :try_end_bb} :catchall_3f6
int-to-long v10, v2
:try_start_bc
invoke-virtual {v5, v10, v11}, Ljava/io/RandomAccessFile;->seek(J)V
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getResponseCode()I
move-result v2
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getContentLength()I
const/16 v4, 0xce
if-ne v2, v4, :cond_20c
const/16 v2, 0x2800
new-array v2, v2, [B
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;
:try_end_d1
.catch Ljava/lang/Throwable; {:try_start_bc .. :try_end_d1} :catch_418
.catchall {:try_start_bc .. :try_end_d1} :catchall_3fc
move-result-object v3
move v4, v6
:cond_d3
:goto_d3
:try_start_d3
invoke-virtual {v3, v2}, Ljava/io/InputStream;->read([B)I
move-result v6
const/4 v9, -0x1
if-eq v6, v9, :cond_1df
iget-boolean v9, p0, Lcn/jpush/android/p/g;->i:Z
if-nez v9, :cond_e6
iget-boolean v9, p0, Lcn/jpush/android/p/g;->j:Z
if-nez v9, :cond_e6
iget-boolean v9, p0, Lcn/jpush/android/p/g;->k:Z
if-eqz v9, :cond_119
:cond_e6
const-string v2, "InAppDownloadThread"
const-string/jumbo v6, "user interrupt apk download task"
invoke-static {v2, v6}, Lcn/jpush/android/helper/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
iget-boolean v2, p0, Lcn/jpush/android/p/g;->i:Z
if-nez v2, :cond_fb
invoke-virtual {v8}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_fb
invoke-virtual {v8}, Ljava/io/File;->delete()Z
:cond_fb
iget-object v2, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v2, :cond_106
iget-object v2, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v2, v6}, Lcn/jpush/android/p/g$a;->c(I)V
:try_end_106
.catch Ljava/lang/Throwable; {:try_start_d3 .. :try_end_106} :catch_12b
.catchall {:try_start_d3 .. :try_end_106} :catchall_2a7
:cond_106
if-eqz v0, :cond_10b
:try_start_108
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_10b
if-eqz v3, :cond_110
invoke-static {v3}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_110
if-eqz v5, :cond_115
invoke-static {v5}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:try_end_115
.catch Ljava/lang/Exception; {:try_start_108 .. :try_end_115} :catch_255
.catch Ljava/lang/AssertionError; {:try_start_108 .. :try_end_115} :catch_3dd
:cond_115
:goto_115
return-void
:cond_116
const/4 v0, 0x0
goto/16 :goto_7
:cond_119
const/4 v9, 0x0
:try_start_11a
invoke-virtual {v5, v2, v9, v6}, Ljava/io/RandomAccessFile;->write([BII)V
add-int/2addr v4, v6
iget-object v9, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v9, :cond_d3
iget-object v9, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v10, p0, Lcn/jpush/android/p/g;->b:I
const/4 v11, 0x1
invoke-interface {v9, v10, v6, v11}, Lcn/jpush/android/p/g$a;->a(IIZ)V
:try_end_12a
.catch Ljava/lang/Throwable; {:try_start_11a .. :try_end_12a} :catch_12b
.catchall {:try_start_11a .. :try_end_12a} :catchall_2a7
goto :goto_d3
:catch_12b
move-exception v2
move-object v12, v2
move-object v2, v3
move-object v3, v5
move v5, v4
move-object v4, v0
move-object v0, v12
:goto_132
:try_start_132
const-string v6, "InAppDownloadThread"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "download apk, url: "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
iget-object v10, p0, Lcn/jpush/android/p/g;->a:Ljava/lang/String;
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
const-string v10, " failed, "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v9, v0}, 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
invoke-static {v6, v0}, Lcn/jpush/android/helper/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
iget-boolean v0, p0, Lcn/jpush/android/p/g;->l:Z
if-nez v0, :cond_423
invoke-virtual {v8}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_423
invoke-virtual {v8}, Ljava/io/File;->delete()Z
:try_end_167
.catchall {:try_start_132 .. :try_end_167} :catchall_401
const/4 v1, 0x0
move v0, v5
:goto_169
:try_start_169
iget-boolean v5, p0, Lcn/jpush/android/p/g;->i:Z
if-eqz v5, :cond_39f
const-string v5, "InAppDownloadThread"
const-string/jumbo v6, "user pause download task"
invoke-static {v5, v6}, Lcn/jpush/android/helper/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
const/4 v5, 0x4
iput v5, p0, Lcn/jpush/android/p/g;->m:I
iget-object v5, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v5, :cond_183
iget-object v5, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v5, v6}, Lcn/jpush/android/p/g$a;->b(I)V
:try_end_183
.catchall {:try_start_169 .. :try_end_183} :catchall_3bb
:cond_183
:goto_183
if-eqz v4, :cond_188
:try_start_185
invoke-virtual {v4}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_188
if-eqz v2, :cond_18d
invoke-static {v2}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_18d
if-eqz v3, :cond_192
invoke-static {v3}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:try_end_192
.catch Ljava/lang/Exception; {:try_start_185 .. :try_end_192} :catch_3eb
.catch Ljava/lang/AssertionError; {:try_start_185 .. :try_end_192} :catch_3e5
:cond_192
:goto_192
move v6, v1
move v1, v0
:goto_194
const/4 v0, 0x5
if-lt v7, v0, :cond_3c3
const-string v0, "InAppDownloadThread"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "try times: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " download apk failed."
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/jpush/android/helper/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
const/16 v0, 0x8
iput v0, p0, Lcn/jpush/android/p/g;->m:I
iget-object v0, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v0, :cond_115
iget-object v0, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v1, p0, Lcn/jpush/android/p/g;->b:I
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "try "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " times steal failed"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-interface {v0, v1, v2}, Lcn/jpush/android/p/g$a;->a(ILjava/lang/String;)V
goto/16 :goto_115
:cond_1df
move v2, v4
move-object v4, v3
:goto_1e1
:try_start_1e1
iget-boolean v3, p0, Lcn/jpush/android/p/g;->i:Z
if-eqz v3, :cond_32b
const-string v3, "InAppDownloadThread"
const-string v6, "download thread -> pause"
invoke-static {v3, v6}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v3, 0x4
iput v3, p0, Lcn/jpush/android/p/g;->m:I
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v3, :cond_1fa
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v3, v6}, Lcn/jpush/android/p/g$a;->b(I)V
:try_end_1fa
.catch Ljava/lang/Throwable; {:try_start_1e1 .. :try_end_1fa} :catch_346
.catchall {:try_start_1e1 .. :try_end_1fa} :catchall_36d
:cond_1fa
:goto_1fa
if-eqz v0, :cond_1ff
:try_start_1fc
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_1ff
if-eqz v4, :cond_204
invoke-static {v4}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_204
if-eqz v5, :cond_427
invoke-static {v5}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:try_end_209
.catch Ljava/lang/Exception; {:try_start_1fc .. :try_end_209} :catch_39b
.catch Ljava/lang/AssertionError; {:try_start_1fc .. :try_end_209} :catch_3e1
move v0, v1
move v1, v2
goto :goto_192
:cond_20c
const/16 v4, 0xc8
if-ne v2, v4, :cond_2c1
const/16 v2, 0x2800
:try_start_212
new-array v9, v2, [B
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;
:try_end_217
.catch Ljava/lang/Throwable; {:try_start_212 .. :try_end_217} :catch_418
.catchall {:try_start_212 .. :try_end_217} :catchall_3fc
move-result-object v3
move v4, v6
:cond_219
:goto_219
:try_start_219
invoke-virtual {v3, v9}, Ljava/io/InputStream;->read([B)I
move-result v6
const/4 v2, -0x1
if-eq v6, v2, :cond_2bd
iget-boolean v2, p0, Lcn/jpush/android/p/g;->j:Z
if-nez v2, :cond_228
iget-boolean v2, p0, Lcn/jpush/android/p/g;->k:Z
if-eqz v2, :cond_275
:cond_228
const-string v2, "InAppDownloadThread"
const-string/jumbo v6, "user interrupt apk download task"
invoke-static {v2, v6}, Lcn/jpush/android/helper/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v8}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_239
invoke-virtual {v8}, Ljava/io/File;->delete()Z
:cond_239
iget-object v2, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v2, :cond_244
iget-object v2, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v2, v6}, Lcn/jpush/android/p/g$a;->c(I)V
:try_end_244
.catch Ljava/lang/Throwable; {:try_start_219 .. :try_end_244} :catch_12b
.catchall {:try_start_219 .. :try_end_244} :catchall_2a7
:cond_244
if-eqz v0, :cond_249
:try_start_246
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_249
if-eqz v3, :cond_24e
invoke-static {v3}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_24e
if-eqz v5, :cond_115
invoke-static {v5}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:try_end_253
.catch Ljava/lang/Exception; {:try_start_246 .. :try_end_253} :catch_255
.catch Ljava/lang/AssertionError; {:try_start_246 .. :try_end_253} :catch_3dd
goto/16 :goto_115
:catch_255
move-exception v0
move v6, v4
:goto_257
const-string v2, "InAppDownloadThread"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "http client execute error:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v3, v0}, 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
invoke-static {v2, v0}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
goto/16 :goto_194
:cond_275
const/4 v2, 0x0
:try_start_276
invoke-virtual {v5, v9, v2, v6}, Ljava/io/RandomAccessFile;->write([BII)V
add-int/2addr v4, v6
if-lez v7, :cond_27e
if-lt v4, v1, :cond_2a0
:cond_27e
const/4 v2, 0x1
:goto_27f
iget-object v10, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v10, :cond_28a
iget-object v10, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v11, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v10, v11, v6, v2}, Lcn/jpush/android/p/g$a;->a(IIZ)V
:cond_28a
:goto_28a
iget-boolean v2, p0, Lcn/jpush/android/p/g;->i:Z
if-eqz v2, :cond_219
const/4 v2, 0x4
iput v2, p0, Lcn/jpush/android/p/g;->m:I
:try_end_291
.catch Ljava/lang/Throwable; {:try_start_276 .. :try_end_291} :catch_12b
.catchall {:try_start_276 .. :try_end_291} :catchall_2a7
const-wide/16 v10, 0x1e
:try_start_293
invoke-static {v10, v11}, Ljava/lang/Thread;->sleep(J)V
iget-boolean v2, p0, Lcn/jpush/android/p/g;->j:Z
if-nez v2, :cond_219
iget-boolean v2, p0, Lcn/jpush/android/p/g;->k:Z
:try_end_29c
.catch Ljava/lang/InterruptedException; {:try_start_293 .. :try_end_29c} :catch_2a2
.catch Ljava/lang/Throwable; {:try_start_293 .. :try_end_29c} :catch_12b
.catchall {:try_start_293 .. :try_end_29c} :catchall_2a7
if-eqz v2, :cond_28a
goto/16 :goto_219
:cond_2a0
const/4 v2, 0x0
goto :goto_27f
:catch_2a2
move-exception v2
:try_start_2a3
invoke-virtual {v2}, Ljava/lang/InterruptedException;->printStackTrace()V
:try_end_2a6
.catch Ljava/lang/Throwable; {:try_start_2a3 .. :try_end_2a6} :catch_12b
.catchall {:try_start_2a3 .. :try_end_2a6} :catchall_2a7
goto :goto_28a
:catchall_2a7
move-exception v2
move v6, v4
move-object v4, v0
move-object v0, v2
:goto_2ab
if-eqz v4, :cond_2b0
:try_start_2ad
invoke-virtual {v4}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_2b0
if-eqz v3, :cond_2b5
invoke-static {v3}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_2b5
if-eqz v5, :cond_2ba
invoke-static {v5}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_2ba
throw v0
:try_end_2bb
.catch Ljava/lang/Exception; {:try_start_2ad .. :try_end_2bb} :catch_2bb
.catch Ljava/lang/AssertionError; {:try_start_2ad .. :try_end_2bb} :catch_30c
:catch_2bb
move-exception v0
goto :goto_257
:cond_2bd
move v2, v4
move-object v4, v3
goto/16 :goto_1e1
:cond_2c1
:try_start_2c1
const-string v4, "InAppDownloadThread"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "download with server error, code: "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-static {v4, v9}, Lcn/jpush/android/helper/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
const/16 v4, 0x8
iput v4, p0, Lcn/jpush/android/p/g;->m:I
iget-object v4, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v4, :cond_2fb
iget-object v4, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v9, p0, Lcn/jpush/android/p/g;->b:I
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v11, "server error:"
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-interface {v4, v9, v2}, Lcn/jpush/android/p/g$a;->a(ILjava/lang/String;)V
:try_end_2fb
.catch Ljava/lang/Throwable; {:try_start_2c1 .. :try_end_2fb} :catch_418
.catchall {:try_start_2c1 .. :try_end_2fb} :catchall_3fc
:cond_2fb
if-eqz v0, :cond_300
:try_start_2fd
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_300
if-eqz v3, :cond_305
invoke-static {v3}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_305
if-eqz v5, :cond_115
invoke-static {v5}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:try_end_30a
.catch Ljava/lang/Exception; {:try_start_2fd .. :try_end_30a} :catch_2bb
.catch Ljava/lang/AssertionError; {:try_start_2fd .. :try_end_30a} :catch_30c
goto/16 :goto_115
:catch_30c
move-exception v0
:goto_30d
const-string v2, "InAppDownloadThread"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Catch AssertionError to avoid http close crash - "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v0}, Ljava/lang/AssertionError;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v3, v0}, 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
invoke-static {v2, v0}, Lcn/jpush/android/helper/Logger;->e(Ljava/lang/String;Ljava/lang/String;)V
goto/16 :goto_194
:cond_32b
:try_start_32b
iget-boolean v3, p0, Lcn/jpush/android/p/g;->j:Z
if-eqz v3, :cond_34f
const-string v3, "InAppDownloadThread"
const-string v6, "download thread -> cancel"
invoke-static {v3, v6}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v3, 0x6
iput v3, p0, Lcn/jpush/android/p/g;->m:I
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v3, :cond_1fa
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v3, v6}, Lcn/jpush/android/p/g$a;->c(I)V
goto/16 :goto_1fa
:catch_346
move-exception v3
move-object v12, v3
move-object v3, v5
move v5, v2
move-object v2, v4
move-object v4, v0
move-object v0, v12
goto/16 :goto_132
:cond_34f
iget-boolean v3, p0, Lcn/jpush/android/p/g;->k:Z
if-eqz v3, :cond_375
const-string v3, "InAppDownloadThread"
const-string v6, "download thread -> error"
invoke-static {v3, v6}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/16 v3, 0x8
iput v3, p0, Lcn/jpush/android/p/g;->m:I
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v3, :cond_1fa
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
const-string v9, "cancel manually by error"
invoke-interface {v3, v6, v9}, Lcn/jpush/android/p/g$a;->a(ILjava/lang/String;)V
goto/16 :goto_1fa
:catchall_36d
move-exception v3
move v6, v2
move-object v12, v4
move-object v4, v0
move-object v0, v3
move-object v3, v12
goto/16 :goto_2ab
:cond_375
const-string v3, "InAppDownloadThread"
const-string v6, "download thread -> completed"
invoke-static {v3, v6}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v3, 0x7
iput v3, p0, Lcn/jpush/android/p/g;->m:I
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v3, :cond_38a
iget-object v3, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v3, v6}, Lcn/jpush/android/p/g$a;->a(I)V
:try_end_38a
.catch Ljava/lang/Throwable; {:try_start_32b .. :try_end_38a} :catch_346
.catchall {:try_start_32b .. :try_end_38a} :catchall_36d
:cond_38a
if-eqz v0, :cond_38f
:try_start_38c
invoke-virtual {v0}, Ljava/net/HttpURLConnection;->disconnect()V
:cond_38f
if-eqz v4, :cond_394
invoke-static {v4}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:cond_394
if-eqz v5, :cond_115
invoke-static {v5}, Lcn/jpush/android/ab/i;->a(Ljava/io/Closeable;)V
:try_end_399
.catch Ljava/lang/Exception; {:try_start_38c .. :try_end_399} :catch_39b
.catch Ljava/lang/AssertionError; {:try_start_38c .. :try_end_399} :catch_3e1
goto/16 :goto_115
:catch_39b
move-exception v0
move v6, v2
goto/16 :goto_257
:cond_39f
:try_start_39f
iget-boolean v5, p0, Lcn/jpush/android/p/g;->j:Z
if-eqz v5, :cond_183
const-string v5, "InAppDownloadThread"
const-string/jumbo v6, "user cancel download task"
invoke-static {v5, v6}, Lcn/jpush/android/helper/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
const/4 v5, 0x6
iput v5, p0, Lcn/jpush/android/p/g;->m:I
iget-object v5, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v5, :cond_183
iget-object v5, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v6, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v5, v6}, Lcn/jpush/android/p/g$a;->c(I)V
:try_end_3b9
.catchall {:try_start_39f .. :try_end_3b9} :catchall_3bb
goto/16 :goto_183
:catchall_3bb
move-exception v5
move v6, v1
move v1, v0
move-object v0, v5
move-object v5, v3
move-object v3, v2
goto/16 :goto_2ab
:cond_3c3
add-int/lit8 v0, v7, 0x1
const-wide/16 v2, 0x1388
:try_start_3c7
invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
:try_end_3ca
.catch Ljava/lang/InterruptedException; {:try_start_3c7 .. :try_end_3ca} :catch_3d8
:goto_3ca
iget-object v2, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
if-eqz v2, :cond_420
iget-object v2, p0, Lcn/jpush/android/p/g;->h:Lcn/jpush/android/p/g$a;
iget v3, p0, Lcn/jpush/android/p/g;->b:I
invoke-interface {v2, v3}, Lcn/jpush/android/p/g$a;->d(I)V
move v7, v0
goto/16 :goto_a
:catch_3d8
move-exception v2
invoke-virtual {v2}, Ljava/lang/InterruptedException;->printStackTrace()V
goto :goto_3ca
:catch_3dd
move-exception v0
move v6, v4
goto/16 :goto_30d
:catch_3e1
move-exception v0
move v6, v2
goto/16 :goto_30d
:catch_3e5
move-exception v2
move v6, v1
move v1, v0
move-object v0, v2
goto/16 :goto_30d
:catch_3eb
move-exception v2
move v6, v1
move v1, v0
move-object v0, v2
goto/16 :goto_257
:catchall_3f1
move-exception v0
move-object v5, v4
move-object v4, v2
goto/16 :goto_2ab
:catchall_3f6
move-exception v2
move-object v5, v4
move-object v4, v0
move-object v0, v2
goto/16 :goto_2ab
:catchall_3fc
move-exception v2
move-object v4, v0
move-object v0, v2
goto/16 :goto_2ab
:catchall_401
move-exception v0
move v6, v5
move-object v5, v3
move-object v3, v2
goto/16 :goto_2ab
:catch_407
move-exception v0
move v5, v6
move-object v12, v4
move-object v4, v2
move-object v2, v3
move-object v3, v12
goto/16 :goto_132
:catch_40f
move-exception v2
move v5, v6
move-object v12, v3
move-object v3, v4
move-object v4, v0
move-object v0, v2
move-object v2, v12
goto/16 :goto_132
:catch_418
move-exception v2
move-object v4, v0
move-object v0, v2
move-object v2, v3
move-object v3, v5
move v5, v6
goto/16 :goto_132
:cond_420
move v7, v0
goto/16 :goto_a
:cond_423
move v0, v1
move v1, v5
goto/16 :goto_169
:cond_427
move v0, v1
move v1, v2
goto/16 :goto_192
.end method
.method public b()V
.registers 4
const-string v0, "InAppDownloadThread"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "[pause], index: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lcn/jpush/android/p/g;->b:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x1
iput-boolean v0, p0, Lcn/jpush/android/p/g;->i:Z
return-void
.end method
.method public c()V
.registers 4
const-string v0, "InAppDownloadThread"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "[resume], index: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lcn/jpush/android/p/g;->b:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
iput-boolean v0, p0, Lcn/jpush/android/p/g;->i:Z
return-void
.end method
.method public d()V
.registers 4
const-string v0, "InAppDownloadThread"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "[cancel], index: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lcn/jpush/android/p/g;->b:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x1
iput-boolean v0, p0, Lcn/jpush/android/p/g;->j:Z
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
return-void
.end method
.method public e()Z
.registers 3
iget v0, p0, Lcn/jpush/android/p/g;->m:I
const/4 v1, 0x3
if-ne v0, v1, :cond_7
const/4 v0, 0x1
:goto_6
return v0
:cond_7
const/4 v0, 0x0
goto :goto_6
.end method
.method public f()Z
.registers 3
iget v0, p0, Lcn/jpush/android/p/g;->m:I
const/4 v1, 0x4
if-ne v0, v1, :cond_7
const/4 v0, 0x1
:goto_6
return v0
:cond_7
const/4 v0, 0x0
goto :goto_6
.end method
.method public g()V
.registers 4
const-string v0, "InAppDownloadThread"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "[cancelByError], index: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lcn/jpush/android/p/g;->b:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcn/jpush/android/helper/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x1
iput-boolean v0, p0, Lcn/jpush/android/p/g;->k:Z
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
return-void
.end method