h.smali

.class public final Lsg/bigo/common/h;
.super Ljava/lang/Object;
.source "SourceFile"


# direct methods
.method public constructor <init>()V
    .registers 1

    .line 28
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method private static a(Ljava/io/File;Ljava/util/zip/ZipOutputStream;Ljava/lang/String;)V
    .registers 7

    .line 190
    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v0

    if-nez v0, :cond_7

    return-void

    :cond_7
    const/4 v0, 0x0

    .line 196
    :try_start_8
    new-instance v1, Ljava/io/BufferedInputStream;

    new-instance v2, Ljava/io/FileInputStream;

    invoke-direct {v2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V

    invoke-direct {v1, v2}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
    :try_end_12
    .catch Ljava/lang/Exception; {:try_start_8 .. :try_end_12} :catch_49
    .catchall {:try_start_8 .. :try_end_12} :catchall_47

    .line 197
    :try_start_12
    new-instance v0, Ljava/util/zip/ZipEntry;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;

    move-result-object p0

    invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p0

    invoke-direct {v0, p0}, Ljava/util/zip/ZipEntry;-><init>(Ljava/lang/String;)V

    .line 198
    invoke-virtual {p1, v0}, Ljava/util/zip/ZipOutputStream;->putNextEntry(Ljava/util/zip/ZipEntry;)V

    const/16 p0, 0x400

    new-array p2, p0, [B

    :goto_31
    const/4 v0, 0x0

    .line 201
    invoke-virtual {v1, p2, v0, p0}, Ljava/io/BufferedInputStream;->read([BII)I

    move-result v2

    const/4 v3, -0x1

    if-eq v2, v3, :cond_3d

    .line 202
    invoke-virtual {p1, p2, v0, v2}, Ljava/util/zip/ZipOutputStream;->write([BII)V
    :try_end_3c
    .catch Ljava/lang/Exception; {:try_start_12 .. :try_end_3c} :catch_44
    .catchall {:try_start_12 .. :try_end_3c} :catchall_41

    goto :goto_31

    .line 1026
    :cond_3d
    invoke-static {v1}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    return-void

    :catchall_41
    move-exception p0

    move-object v0, v1

    goto :goto_55

    :catch_44
    move-exception p0

    move-object v0, v1

    goto :goto_4a

    :catchall_47
    move-exception p0

    goto :goto_55

    :catch_49
    move-exception p0

    :goto_4a
    :try_start_4a
    const-string p1, "CompressUtils"

    const-string p2, "comPressFileEx"

    .line 205
    invoke-static {p1, p2, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
    :try_end_51
    .catchall {:try_start_4a .. :try_end_51} :catchall_47

    .line 2026
    invoke-static {v0}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    return-void

    .line 3026
    :goto_55
    invoke-static {v0}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 207
    goto :goto_5a

    :goto_59
    throw p0

    :goto_5a
    goto :goto_59
.end method

.method public static a(Ljava/io/File;Ljava/util/zip/ZipOutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/io/FileFilter;Ljava/lang/String;)V
    .registers 8

    .line 140
    invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z

    move-result v0

    const-string v1, "compress\uff1a"

    if-eqz v0, :cond_1b

    .line 141
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 142
    invoke-static/range {p0 .. p5}, Lsg/bigo/common/h;->b(Ljava/io/File;Ljava/util/zip/ZipOutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/io/FileFilter;Ljava/lang/String;)V

    return-void

    .line 144
    :cond_1b
    new-instance p3, Ljava/lang/StringBuilder;

    invoke-direct {p3, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;

    move-result-object p4

    invoke-virtual {p3, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 145
    invoke-static {p0, p1, p2}, Lsg/bigo/common/h;->a(Ljava/io/File;Ljava/util/zip/ZipOutputStream;Ljava/lang/String;)V

    return-void
.end method

.method private static a(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;Ljava/io/File;)V
    .registers 7

    const/4 v0, 0x0

    .line 271
    :try_start_1
    invoke-virtual {p1}, Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;

    move-result-object v1

    const-string v2, "../"

    invoke-virtual {v1, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v1

    if-nez v1, :cond_5b

    .line 274
    new-instance v1, Ljava/io/File;

    invoke-virtual {p1}, Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v1, p2, p1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V

    .line 275
    invoke-virtual {v1}, Ljava/io/File;->getParentFile()Ljava/io/File;

    move-result-object p1

    invoke-virtual {p1}, Ljava/io/File;->exists()Z

    move-result p1

    if-nez p1, :cond_27

    .line 276
    invoke-virtual {v1}, Ljava/io/File;->getParentFile()Ljava/io/File;

    move-result-object p1

    invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z

    .line 278
    :cond_27
    new-instance p1, Ljava/io/FileOutputStream;

    invoke-direct {p1, v1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
    :try_end_2c
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_2c} :catch_6f
    .catchall {:try_start_1 .. :try_end_2c} :catchall_63

    .line 279
    :try_start_2c
    new-instance p2, Ljava/io/BufferedOutputStream;

    invoke-direct {p2, p1}, Ljava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V
    :try_end_31
    .catch Ljava/lang/Exception; {:try_start_2c .. :try_end_31} :catch_70
    .catchall {:try_start_2c .. :try_end_31} :catchall_56

    const/16 v0, 0x400

    :try_start_33
    new-array v0, v0, [B

    .line 282
    :goto_35
    invoke-virtual {p0, v0}, Ljava/io/InputStream;->read([B)I

    move-result v1

    const/4 v2, -0x1

    if-eq v1, v2, :cond_41

    const/4 v2, 0x0

    .line 283
    invoke-virtual {p2, v0, v2, v1}, Ljava/io/BufferedOutputStream;->write([BII)V

    goto :goto_35

    .line 285
    :cond_41
    invoke-virtual {p2}, Ljava/io/BufferedOutputStream;->flush()V
    :try_end_44
    .catch Ljava/lang/Exception; {:try_start_33 .. :try_end_44} :catch_54
    .catchall {:try_start_33 .. :try_end_44} :catchall_4e

    .line 4030
    invoke-static {p2}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 5030
    invoke-static {p1}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 6026
    invoke-static {p0}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    return-void

    :catchall_4e
    move-exception v0

    move-object v3, p2

    move-object p2, p1

    move-object p1, v0

    move-object v0, v3

    goto :goto_65

    :catch_54
    move-object v0, p2

    goto :goto_70

    :catchall_56
    move-exception p2

    move-object v3, p2

    move-object p2, p1

    move-object p1, v3

    goto :goto_65

    .line 272
    :cond_5b
    :try_start_5b
    new-instance p1, Ljava/lang/Exception;

    const-string p2, "Unsecurity zipfile!"

    invoke-direct {p1, p2}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V

    throw p1
    :try_end_63
    .catch Ljava/lang/Exception; {:try_start_5b .. :try_end_63} :catch_6f
    .catchall {:try_start_5b .. :try_end_63} :catchall_63

    :catchall_63
    move-exception p1

    move-object p2, v0

    .line 8030
    :goto_65
    invoke-static {v0}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 9030
    invoke-static {p2}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 10026
    invoke-static {p0}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 291
    throw p1

    :catch_6f
    move-object p1, v0

    .line 6030
    :catch_70
    :goto_70
    invoke-static {v0}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 7030
    invoke-static {p1}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    .line 8026
    invoke-static {p0}, Lsg/bigo/common/m;->a(Ljava/io/Closeable;)V

    return-void
.end method

.method public static a(Ljava/io/File;Ljava/io/File;)Z
    .registers 8

    const/4 v0, 0x0

    const-string v1, "CompressUtils"

    if-eqz p0, :cond_a2

    .line 218
    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v2

    if-eqz v2, :cond_a2

    if-nez p1, :cond_f

    goto/16 :goto_a2

    :cond_f
    if-eqz p1, :cond_30

    .line 3369
    invoke-virtual {p1}, Ljava/io/File;->exists()Z

    move-result v2

    if-eqz v2, :cond_23

    .line 3370
    invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z

    move-result v2

    if-eqz v2, :cond_30

    .line 3372
    invoke-static {p1}, Lsg/bigo/common/l;->b(Ljava/io/File;)Z

    move-result v2

    if-eqz v2, :cond_30

    .line 3375
    :cond_23
    invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File;

    move-result-object v2

    invoke-static {v2}, Lsg/bigo/common/l;->e(Ljava/io/File;)Z

    move-result v2

    if-eqz v2, :cond_30

    .line 3376
    invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z

    :cond_30
    const/4 v2, 0x0

    .line 228
    :try_start_31
    new-instance v3, Ljava/util/zip/ZipFile;

    invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object p0

    invoke-direct {v3, p0}, Ljava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V
    :try_end_3a
    .catch Ljava/lang/Exception; {:try_start_31 .. :try_end_3a} :catch_90
    .catchall {:try_start_31 .. :try_end_3a} :catchall_8e

    .line 229
    :try_start_3a
    invoke-virtual {v3}, Ljava/util/zip/ZipFile;->entries()Ljava/util/Enumeration;

    move-result-object p0

    if-eqz p0, :cond_83

    .line 232
    :cond_40
    :goto_40
    invoke-interface {p0}, Ljava/util/Enumeration;->hasMoreElements()Z

    move-result v2

    if-eqz v2, :cond_83

    .line 233
    invoke-interface {p0}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/util/zip/ZipEntry;

    .line 234
    invoke-virtual {v2}, Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;

    move-result-object v4

    const-string v5, "../"

    invoke-virtual {v4, v5}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v4

    if-nez v4, :cond_7b

    .line 237
    invoke-virtual {v2}, Ljava/util/zip/ZipEntry;->isDirectory()Z

    move-result v4

    if-eqz v4, :cond_71

    .line 238
    new-instance v4, Ljava/io/File;

    invoke-virtual {v2}, Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v4, p1, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V

    .line 239
    invoke-virtual {v4}, Ljava/io/File;->exists()Z

    move-result v2

    if-nez v2, :cond_40

    .line 240
    invoke-virtual {v4}, Ljava/io/File;->mkdirs()Z

    goto :goto_40

    .line 243
    :cond_71
    invoke-virtual {v3, v2}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;

    move-result-object v4

    if-eqz v4, :cond_40

    .line 247
    invoke-static {v4, v2, p1}, Lsg/bigo/common/h;->a(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;Ljava/io/File;)V

    goto :goto_40

    .line 235
    :cond_7b
    new-instance p0, Ljava/lang/Exception;

    const-string p1, "Unsecurity zipfile!"

    invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V

    throw p0
    :try_end_83
    .catch Ljava/lang/Exception; {:try_start_3a .. :try_end_83} :catch_8b
    .catchall {:try_start_3a .. :try_end_83} :catchall_88

    :cond_83
    const/4 v0, 0x1

    .line 258
    :try_start_84
    invoke-virtual {v3}, Ljava/util/zip/ZipFile;->close()V
    :try_end_87
    .catch Ljava/lang/Exception; {:try_start_84 .. :try_end_87} :catch_9b

    goto :goto_9b

    :catchall_88
    move-exception p0

    move-object v2, v3

    goto :goto_9c

    :catch_8b
    move-exception p0

    move-object v2, v3

    goto :goto_91

    :catchall_8e
    move-exception p0

    goto :goto_9c

    :catch_90
    move-exception p0

    :goto_91
    :try_start_91
    const-string p1, "unzip fail with exception"

    .line 253
    invoke-static {v1, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
    :try_end_96
    .catchall {:try_start_91 .. :try_end_96} :catchall_8e

    if-eqz v2, :cond_9b

    .line 258
    :try_start_98
    invoke-virtual {v2}, Ljava/util/zip/ZipFile;->close()V
    :try_end_9b
    .catch Ljava/lang/Exception; {:try_start_98 .. :try_end_9b} :catch_9b

    :catch_9b
    :cond_9b
    :goto_9b
    return v0

    :goto_9c
    if-eqz v2, :cond_a1

    :try_start_9e
    invoke-virtual {v2}, Ljava/util/zip/ZipFile;->close()V
    :try_end_a1
    .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_a1} :catch_a1

    .line 262
    :catch_a1
    :cond_a1
    throw p0

    .line 219
    :cond_a2
    :goto_a2
    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "unzip fail file="

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string p0, "; destFolder="

    invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p0

    invoke-static {v1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    return v0
.end method

.method private static b(Ljava/io/File;Ljava/util/zip/ZipOutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/io/FileFilter;Ljava/lang/String;)V
    .registers 15

    .line 161
    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v0

    if-nez v0, :cond_7

    return-void

    .line 165
    :cond_7
    invoke-static {p5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_f

    const/4 v0, 0x0

    goto :goto_13

    .line 168
    :cond_f
    invoke-static {p5}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;

    move-result-object v0

    .line 170
    :goto_13
    new-instance v1, Lsg/bigo/common/h$1;

    invoke-direct {v1, p3, p4, v0}, Lsg/bigo/common/h$1;-><init>(Ljava/lang/String;Ljava/io/FileFilter;Ljava/util/regex/Pattern;)V

    invoke-virtual {p0, v1}, Ljava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    .line 177
    :goto_1d
    array-length v2, v0

    if-ge v1, v2, :cond_44

    .line 178
    aget-object v3, v0, v1

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v4, "/"

    invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    move-object v4, p1

    move-object v6, p3

    move-object v7, p4

    move-object v8, p5

    invoke-static/range {v3 .. v8}, Lsg/bigo/common/h;->a(Ljava/io/File;Ljava/util/zip/ZipOutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/io/FileFilter;Ljava/lang/String;)V

    add-int/lit8 v1, v1, 0x1

    goto :goto_1d

    :cond_44
    return-void
.end method