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