a.smali
.class public final Lcom/garena/reactpush/v5/load/a;
.super Lcom/garena/reactpush/v4/load/b;
.source "SourceFile"
# instance fields
.field public c:Z
.field public final d:Ljava/lang/String;
.field public final e:I
# direct methods
.method public constructor <init>(Ljava/lang/String;Lcom/garena/reactpush/store/b;)V
.registers 4
const-string v0, "diskPath"
invoke-static {p1, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "manifestStore"
invoke-static {p2, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
invoke-direct {p0, p1}, Lcom/garena/reactpush/v4/load/b;-><init>(Ljava/lang/String;)V
iput-object p1, p0, Lcom/garena/reactpush/v5/load/a;->d:Ljava/lang/String;
const/16 p1, 0x44e
iput p1, p0, Lcom/garena/reactpush/v5/load/a;->e:I
return-void
.end method
# virtual methods
.method public final b(Lcom/garena/reactpush/data/Manifest;Lcom/garena/reactpush/data/BundleState;)Z
.registers 28
move-object/from16 v1, p0
move-object/from16 v2, p2
const-string v0, "manifest"
move-object/from16 v3, p1
invoke-static {v3, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "state"
invoke-static {v2, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v4, 0x0
.line 1
iput-boolean v4, v1, Lcom/garena/reactpush/v4/load/b;->a:Z
.line 2
invoke-virtual/range {p1 .. p1}, Lcom/garena/reactpush/data/Manifest;->isEmpty()Z
move-result v0
if-eqz v0, :cond_21
.line 3
sget-object v0, Lcom/garena/reactpush/a;->e:Lcom/garena/reactpush/util/i;
const-string v2, "Manifest is invalid"
invoke-interface {v0, v2}, Lcom/garena/reactpush/util/i;->d(Ljava/lang/String;)V
return v4
.line 4
:cond_21
iget-boolean v0, v1, Lcom/garena/reactpush/v5/load/a;->c:Z
.line 5
invoke-virtual/range {p2 .. p2}, Lcom/garena/reactpush/data/BundleState;->getLastCheckedTime()J
move-result-wide v5
.line 6
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v7
sub-long/2addr v7, v5
const-wide/16 v5, 0x0
const/4 v9, 0x1
cmp-long v10, v7, v5
if-lez v10, :cond_3d
const v5, 0xf731400
int-to-long v5, v5
cmp-long v10, v7, v5
if-lez v10, :cond_3d
const/4 v5, 0x1
goto :goto_3e
:cond_3d
const/4 v5, 0x0
.line 7
:goto_3e
new-instance v6, Ljava/io/File;
iget-object v7, v1, Lcom/garena/reactpush/v5/load/a;->d:Ljava/lang/String;
invoke-direct {v6, v7}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 8
sget-object v7, Lcom/garena/reactpush/v4/load/b$a;->a:Lcom/garena/reactpush/v4/load/b$a;
.line 9
invoke-virtual {v6, v7}, Ljava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;
move-result-object v6
if-eqz v6, :cond_1bc
.line 10
new-instance v7, Ljava/util/HashMap;
invoke-direct {v7}, Ljava/util/HashMap;-><init>()V
.line 11
invoke-virtual/range {p1 .. p1}, Lcom/garena/reactpush/data/Manifest;->getPlugins()Ljava/util/List;
move-result-object v3
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_5a
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v8
if-eqz v8, :cond_6e
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/garena/reactpush/data/Plugin;
.line 12
invoke-virtual {v8}, Lcom/garena/reactpush/data/Plugin;->getPlugin()Ljava/lang/String;
move-result-object v10
invoke-virtual {v7, v10, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_5a
.line 13
:cond_6e
array-length v3, v6
const/4 v8, 0x0
:goto_70
const-string v10, "bundleFile"
if-ge v8, v3, :cond_9d
aget-object v11, v6, v8
.line 14
invoke-static {v11, v10}, Lcom/shopee/sz/loadtask/datasource/a;->x(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {v11}, Lkotlin/io/h;->Y0(Ljava/io/File;)Ljava/lang/String;
move-result-object v12
.line 15
invoke-virtual {v7, v12}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v13
if-nez v13, :cond_84
goto :goto_98
.line 16
:cond_84
invoke-virtual {v2, v12}, Lcom/garena/reactpush/data/BundleState;->getBundleModifiedTime(Ljava/lang/String;)J
move-result-wide v12
.line 17
invoke-virtual {v11}, Ljava/io/File;->lastModified()J
move-result-wide v14
cmp-long v11, v14, v12
if-eqz v11, :cond_92
const/4 v11, 0x1
goto :goto_93
:cond_92
const/4 v11, 0x0
:goto_93
if-nez v11, :cond_9b
if-eqz v5, :cond_98
goto :goto_9b
:cond_98
:goto_98
add-int/lit8 v8, v8, 0x1
goto :goto_70
:cond_9b
:goto_9b
const/4 v3, 0x1
goto :goto_9e
:cond_9d
move v3, v0
.line 18
:goto_9e
new-instance v5, Lcom/garena/reactpush/v5/download/d;
iget-object v0, v1, Lcom/garena/reactpush/v5/load/a;->d:Ljava/lang/String;
invoke-direct {v5, v0}, Lcom/garena/reactpush/v5/download/d;-><init>(Ljava/lang/String;)V
.line 19
array-length v8, v6
const/4 v0, 0x0
const/4 v11, 0x0
const/4 v15, 0x0
:goto_a9
if-ge v15, v8, :cond_19e
aget-object v14, v6, v15
.line 20
invoke-static {v14, v10}, Lcom/shopee/sz/loadtask/datasource/a;->x(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {v14}, Lkotlin/io/h;->Y0(Ljava/io/File;)Ljava/lang/String;
move-result-object v13
.line 21
invoke-virtual {v7, v13}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v12
move-object/from16 v17, v12
check-cast v17, Lcom/garena/reactpush/data/Plugin;
if-eqz v17, :cond_197
.line 22
invoke-virtual/range {v17 .. v17}, Lcom/garena/reactpush/data/Plugin;->getPriority()I
move-result v12
if-nez v12, :cond_c7
const/16 v18, 0x1
goto :goto_c9
:cond_c7
move/from16 v18, v0
.line 23
:goto_c9
invoke-virtual/range {v17 .. v17}, Lcom/garena/reactpush/data/Plugin;->getFallback()Z
move-result v0
if-eqz v0, :cond_d2
const/16 v19, 0x1
goto :goto_d4
:cond_d2
move/from16 v19, v11
:goto_d4
if-eqz v3, :cond_190
.line 24
sget-object v0, Lcom/garena/reactpush/a;->e:Lcom/garena/reactpush/util/i;
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
const-string v12, "Verifying MD5 for "
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v11
invoke-interface {v0, v11}, Lcom/garena/reactpush/util/i;->d(Ljava/lang/String;)V
.line 25
:try_start_ec
invoke-static {v14}, Lkotlin/io/g;->P0(Ljava/io/File;)[B
move-result-object v0
invoke-static {v0}, Lcom/google/android/play/core/appupdate/d;->B0([B)Ljava/lang/String;
move-result-object v0
.line 26
invoke-virtual/range {v17 .. v17}, Lcom/garena/reactpush/data/Plugin;->getBundleMd5()Ljava/lang/String;
move-result-object v11
if-nez v11, :cond_12e
.line 27
new-instance v12, Ljava/util/concurrent/CountDownLatch;
invoke-direct {v12, v9}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
.line 28
new-instance v11, Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-direct {v11, v4}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
.line 29
invoke-virtual/range {v17 .. v17}, Lcom/garena/reactpush/data/Plugin;->getManifestUrl()Ljava/lang/String;
move-result-object v16
const-string v20, "download/"
:try_end_10a
.catch Ljava/io/IOException; {:try_start_ec .. :try_end_10a} :catch_127
move-object/from16 v21, v11
move-object v11, v5
move-object/from16 v22, v12
move-object/from16 v12, v17
move-object v9, v13
move-object/from16 v13, v16
move-object/from16 v23, v14
move-object/from16 v14, v22
move/from16 v24, v15
move-object/from16 v15, v21
move-object/from16 v16, v20
.line 30
:try_start_11e
invoke-virtual/range {v11 .. v16}, Lcom/garena/reactpush/v5/download/d;->a(Lcom/garena/reactpush/data/Plugin;Ljava/lang/String;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/lang/String;)V
.line 31
invoke-virtual/range {v22 .. v22}, Ljava/util/concurrent/CountDownLatch;->await()V
goto :goto_14d
:catch_125
move-exception v0
goto :goto_17f
:catch_127
move-exception v0
move-object v9, v13
move-object/from16 v23, v14
move/from16 v24, v15
goto :goto_17f
:cond_12e
move-object v9, v13
move-object/from16 v23, v14
move/from16 v24, v15
.line 32
sget-object v11, Lcom/garena/reactpush/a;->e:Lcom/garena/reactpush/util/i;
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
const-string v13, "Use local plugin manifest for "
invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {v17 .. v17}, Lcom/garena/reactpush/data/Plugin;->getPlugin()Ljava/lang/String;
move-result-object v13
invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v12
invoke-interface {v11, v12}, Lcom/garena/reactpush/util/i;->d(Ljava/lang/String;)V
.line 33
:goto_14d
invoke-virtual/range {v17 .. v17}, Lcom/garena/reactpush/data/Plugin;->getBundleMd5()Ljava/lang/String;
move-result-object v11
invoke-static {v11, v0}, Lcom/shopee/sz/loadtask/datasource/a;->r(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v11
:try_end_155
.catch Ljava/io/IOException; {:try_start_11e .. :try_end_155} :catch_125
if-nez v11, :cond_185
.line 34
:try_start_157
sget-object v12, Lcom/garena/reactpush/a;->e:Lcom/garena/reactpush/util/i;
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v13, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v14, " has invalid MD5. Expected: "
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {v17 .. v17}, Lcom/garena/reactpush/data/Plugin;->getBundleMd5()Ljava/lang/String;
move-result-object v14
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v14, ", actual: "
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {v12, v0}, Lcom/garena/reactpush/util/i;->info(Ljava/lang/String;)V
:try_end_17c
.catch Ljava/io/IOException; {:try_start_157 .. :try_end_17c} :catch_17d
goto :goto_185
:catch_17d
move-exception v0
goto :goto_180
:goto_17f
const/4 v11, 0x0
.line 35
:goto_180
sget-object v12, Lcom/garena/reactpush/a;->e:Lcom/garena/reactpush/util/i;
invoke-interface {v12, v0}, Lcom/garena/reactpush/util/i;->b(Ljava/lang/Throwable;)V
:cond_185
:goto_185
if-eqz v11, :cond_18f
.line 36
invoke-virtual/range {v23 .. v23}, Ljava/io/File;->lastModified()J
move-result-wide v11
invoke-virtual {v2, v9, v11, v12}, Lcom/garena/reactpush/data/BundleState;->setBundleModifiedTime(Ljava/lang/String;J)V
goto :goto_192
:cond_18f
return v4
:cond_190
move/from16 v24, v15
:goto_192
move/from16 v0, v18
move/from16 v11, v19
goto :goto_199
:cond_197
move/from16 v24, v15
:goto_199
add-int/lit8 v15, v24, 0x1
const/4 v9, 0x1
goto/16 :goto_a9
:cond_19e
if-eqz v0, :cond_1b5
if-nez v11, :cond_1a3
goto :goto_1b5
:cond_1a3
if-eqz v3, :cond_1ac
.line 37
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v3
invoke-virtual {v2, v3, v4}, Lcom/garena/reactpush/data/BundleState;->setLastCheckedTime(J)V
.line 38
:cond_1ac
iget v0, v1, Lcom/garena/reactpush/v5/load/a;->e:I
invoke-virtual {v2, v0}, Lcom/garena/reactpush/data/BundleState;->setAppVersion(I)V
const/4 v2, 0x1
.line 39
iput-boolean v2, v1, Lcom/garena/reactpush/v4/load/b;->a:Z
return v2
.line 40
:cond_1b5
:goto_1b5
sget-object v0, Lcom/garena/reactpush/a;->e:Lcom/garena/reactpush/util/i;
const-string v2, "Manifest lack P0 and/or fallback plugin"
invoke-interface {v0, v2}, Lcom/garena/reactpush/util/i;->info(Ljava/lang/String;)V
:cond_1bc
return v4
.end method
.method public final c()V
.registers 2
sget-object v0, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
if-eqz v0, :cond_6
const/4 v0, 0x1
goto :goto_7
:cond_6
const/4 v0, 0x0
:goto_7
iput-boolean v0, p0, Lcom/garena/reactpush/v5/load/a;->c:Z
return-void
.end method