ZipFile.smali 
.class public Lnet/lingala/zip4j/ZipFile;
.super Ljava/lang/Object;
# interfaces
.implements Ljava/io/Closeable;
# instance fields
.field private bufferSize:I
.field private charset:Ljava/nio/charset/Charset;
.field private executorService:Ljava/util/concurrent/ExecutorService;
.field private headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
.field private isEncrypted:Z
.field private openInputStreams:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Ljava/io/InputStream;",
            ">;"
        }
    .end annotation
.end field
.field private password:[C
.field private progressMonitor:Lnet/lingala/zip4j/progress/ProgressMonitor;
.field private runInThread:Z
.field private threadFactory:Ljava/util/concurrent/ThreadFactory;
.field private useUtf8CharsetForPasswords:Z
.field private zipFile:Ljava/io/File;
.field private zipModel:Lnet/lingala/zip4j/model/ZipModel;
# direct methods
.method public constructor <init>(Ljava/io/File;)V
    .registers 3
    const/4 v0, 0x0
    .line 3
    invoke-direct {p0, p1, v0}, Lnet/lingala/zip4j/ZipFile;-><init>(Ljava/io/File;[C)V
    return-void
.end method
.method public constructor <init>(Ljava/io/File;[C)V
    .registers 4
    .line 4
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    .line 5
    new-instance v0, Lnet/lingala/zip4j/headers/HeaderWriter;
    invoke-direct {v0}, Lnet/lingala/zip4j/headers/HeaderWriter;-><init>()V
    iput-object v0, p0, Lnet/lingala/zip4j/ZipFile;->headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
    const/4 v0, 0x0
    .line 6
    iput-object v0, p0, Lnet/lingala/zip4j/ZipFile;->charset:Ljava/nio/charset/Charset;
    const/16 v0, 0x1000
    .line 9
    iput v0, p0, Lnet/lingala/zip4j/ZipFile;->bufferSize:I
    .line 10
    new-instance v0, Ljava/util/ArrayList;
    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
    iput-object v0, p0, Lnet/lingala/zip4j/ZipFile;->openInputStreams:Ljava/util/List;
    const/4 v0, 0x1
    .line 11
    iput-boolean v0, p0, Lnet/lingala/zip4j/ZipFile;->useUtf8CharsetForPasswords:Z
    if-eqz p1, :cond_2c
    .line 58
    iput-object p1, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    .line 59
    iput-object p2, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    const/4 p1, 0x0
    .line 60
    iput-boolean p1, p0, Lnet/lingala/zip4j/ZipFile;->runInThread:Z
    .line 61
    new-instance p1, Lnet/lingala/zip4j/progress/ProgressMonitor;
    invoke-direct {p1}, Lnet/lingala/zip4j/progress/ProgressMonitor;-><init>()V
    iput-object p1, p0, Lnet/lingala/zip4j/ZipFile;->progressMonitor:Lnet/lingala/zip4j/progress/ProgressMonitor;
    return-void
    .line 62
    :cond_2c
    new-instance p1, Ljava/lang/IllegalArgumentException;
    const-string p2, "input zip file parameter is null"
    invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public constructor <init>(Ljava/lang/String;)V
    .registers 3
    .line 1
    new-instance v0, Ljava/io/File;
    invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    const/4 p1, 0x0
    invoke-direct {p0, v0, p1}, Lnet/lingala/zip4j/ZipFile;-><init>(Ljava/io/File;[C)V
    return-void
.end method
.method public constructor <init>(Ljava/lang/String;[C)V
    .registers 4
    .line 2
    new-instance v0, Ljava/io/File;
    invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    invoke-direct {p0, v0, p2}, Lnet/lingala/zip4j/ZipFile;-><init>(Ljava/io/File;[C)V
    return-void
.end method
.method private addFolder(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;Z)V
    .registers 8
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 24
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 26
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_34
    if-eqz p3, :cond_18
    .line 31
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->isSplitArchive()Z
    move-result p3
    if-nez p3, :cond_10
    goto :goto_18
    .line 32
    :cond_10
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "This is a split archive. Zip file format does not allow updating split/spanned files"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 36
    :cond_18
    :goto_18
    new-instance p3, Lnet/lingala/zip4j/tasks/AddFolderToZipTask;
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v3
    invoke-direct {p3, v0, v1, v2, v3}, Lnet/lingala/zip4j/tasks/AddFolderToZipTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;[CLnet/lingala/zip4j/headers/HeaderWriter;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance v0, Lnet/lingala/zip4j/tasks/AddFolderToZipTask$AddFolderToZipTaskParameters;
    .line 37
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v1
    invoke-direct {v0, p1, p2, v1}, Lnet/lingala/zip4j/tasks/AddFolderToZipTask$AddFolderToZipTaskParameters;-><init>(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 38
    invoke-virtual {p3, v0}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 39
    :cond_34
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "internal error: zip model is null"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method private buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    .registers 5
    .line 1
    iget-boolean v0, p0, Lnet/lingala/zip4j/ZipFile;->runInThread:Z
    if-eqz v0, :cond_16
    .line 2
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->threadFactory:Ljava/util/concurrent/ThreadFactory;
    if-nez v0, :cond_e
    .line 3
    invoke-static {}, Ljava/util/concurrent/Executors;->defaultThreadFactory()Ljava/util/concurrent/ThreadFactory;
    move-result-object v0
    iput-object v0, p0, Lnet/lingala/zip4j/ZipFile;->threadFactory:Ljava/util/concurrent/ThreadFactory;
    .line 5
    :cond_e
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->threadFactory:Ljava/util/concurrent/ThreadFactory;
    invoke-static {v0}, Ljava/util/concurrent/Executors;->newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
    move-result-object v0
    iput-object v0, p0, Lnet/lingala/zip4j/ZipFile;->executorService:Ljava/util/concurrent/ExecutorService;
    .line 8
    :cond_16
    new-instance v0, Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->executorService:Ljava/util/concurrent/ExecutorService;
    iget-boolean v2, p0, Lnet/lingala/zip4j/ZipFile;->runInThread:Z
    iget-object v3, p0, Lnet/lingala/zip4j/ZipFile;->progressMonitor:Lnet/lingala/zip4j/progress/ProgressMonitor;
    invoke-direct {v0, v1, v2, v3}, Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;-><init>(Ljava/util/concurrent/ExecutorService;ZLnet/lingala/zip4j/progress/ProgressMonitor;)V
    return-object v0
.end method
.method private buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    .registers 5
    .line 1
    new-instance v0, Lnet/lingala/zip4j/model/Zip4jConfig;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->charset:Ljava/nio/charset/Charset;
    iget v2, p0, Lnet/lingala/zip4j/ZipFile;->bufferSize:I
    iget-boolean v3, p0, Lnet/lingala/zip4j/ZipFile;->useUtf8CharsetForPasswords:Z
    invoke-direct {v0, v1, v2, v3}, Lnet/lingala/zip4j/model/Zip4jConfig;-><init>(Ljava/nio/charset/Charset;IZ)V
    return-object v0
.end method
.method private createNewZipModel()V
    .registers 3
    .line 1
    new-instance v0, Lnet/lingala/zip4j/model/ZipModel;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/ZipModel;-><init>()V
    iput-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    .line 2
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0, v1}, Lnet/lingala/zip4j/model/ZipModel;->setZipFile(Ljava/io/File;)V
    return-void
.end method
.method private initializeRandomAccessFileForHeaderReading()Ljava/io/RandomAccessFile;
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-static {v0}, Lnet/lingala/zip4j/util/FileUtils;->isNumberedSplitFile(Ljava/io/File;)Z
    move-result v0
    if-eqz v0, :cond_1f
    .line 2
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-static {v0}, Lnet/lingala/zip4j/util/FileUtils;->getAllSortedNumberedSplitFiles(Ljava/io/File;)[Ljava/io/File;
    move-result-object v0
    .line 3
    new-instance v1, Lnet/lingala/zip4j/io/inputstream/NumberedSplitRandomAccessFile;
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    sget-object v3, Lnet/lingala/zip4j/model/enums/RandomAccessFileMode;->READ:Lnet/lingala/zip4j/model/enums/RandomAccessFileMode;
    .line 4
    invoke-virtual {v3}, Lnet/lingala/zip4j/model/enums/RandomAccessFileMode;->getValue()Ljava/lang/String;
    move-result-object v3
    invoke-direct {v1, v2, v3, v0}, Lnet/lingala/zip4j/io/inputstream/NumberedSplitRandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;[Ljava/io/File;)V
    .line 5
    invoke-virtual {v1}, Lnet/lingala/zip4j/io/inputstream/NumberedSplitRandomAccessFile;->openLastSplitFileForReading()V
    return-object v1
    .line 9
    :cond_1f
    new-instance v0, Ljava/io/RandomAccessFile;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    sget-object v2, Lnet/lingala/zip4j/model/enums/RandomAccessFileMode;->READ:Lnet/lingala/zip4j/model/enums/RandomAccessFileMode;
    invoke-virtual {v2}, Lnet/lingala/zip4j/model/enums/RandomAccessFileMode;->getValue()Ljava/lang/String;
    move-result-object v2
    invoke-direct {v0, v1, v2}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
    return-object v0
.end method
.method private readZipInfo()V
    .registers 4
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_5
    return-void
    .line 5
    :cond_5
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-nez v0, :cond_11
    .line 6
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->createNewZipModel()V
    return-void
    .line 10
    :cond_11
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->canRead()Z
    move-result v0
    if-eqz v0, :cond_4c
    .line 14
    :try_start_19
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->initializeRandomAccessFileForHeaderReading()Ljava/io/RandomAccessFile;
    move-result-object v0
    :try_end_1d
    .catch Lnet/lingala/zip4j/exception/ZipException; {:try_start_19 .. :try_end_1d} :catch_4a
    .catch Ljava/io/IOException; {:try_start_19 .. :try_end_1d} :catch_43
    .line 15
    :try_start_1d
    new-instance v1, Lnet/lingala/zip4j/headers/HeaderReader;
    invoke-direct {v1}, Lnet/lingala/zip4j/headers/HeaderReader;-><init>()V
    .line 16
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v2
    invoke-virtual {v1, v0, v2}, Lnet/lingala/zip4j/headers/HeaderReader;->readAllHeaders(Ljava/io/RandomAccessFile;Lnet/lingala/zip4j/model/Zip4jConfig;)Lnet/lingala/zip4j/model/ZipModel;
    move-result-object v1
    iput-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    .line 17
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v1, v2}, Lnet/lingala/zip4j/model/ZipModel;->setZipFile(Ljava/io/File;)V
    :try_end_31
    .catchall {:try_start_1d .. :try_end_31} :catchall_37
    if-eqz v0, :cond_36
    .line 18
    :try_start_33
    invoke-virtual {v0}, Ljava/io/RandomAccessFile;->close()V
    :try_end_36
    .catch Lnet/lingala/zip4j/exception/ZipException; {:try_start_33 .. :try_end_36} :catch_4a
    .catch Ljava/io/IOException; {:try_start_33 .. :try_end_36} :catch_43
    :cond_36
    return-void
    :catchall_37
    move-exception v1
    if-eqz v0, :cond_42
    .line 19
    :try_start_3a
    invoke-virtual {v0}, Ljava/io/RandomAccessFile;->close()V
    :try_end_3d
    .catchall {:try_start_3a .. :try_end_3d} :catchall_3e
    goto :goto_42
    :catchall_3e
    move-exception v0
    :try_start_3f
    invoke-virtual {v1, v0}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
    :cond_42
    :goto_42
    throw v1
    :try_end_43
    .catch Lnet/lingala/zip4j/exception/ZipException; {:try_start_3f .. :try_end_43} :catch_4a
    .catch Ljava/io/IOException; {:try_start_3f .. :try_end_43} :catch_43
    :catch_43
    move-exception v0
    .line 26
    new-instance v1, Lnet/lingala/zip4j/exception/ZipException;
    invoke-direct {v1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/Exception;)V
    throw v1
    :catch_4a
    move-exception v0
    .line 27
    throw v0
    .line 28
    :cond_4c
    new-instance v0, Lnet/lingala/zip4j/exception/ZipException;
    const-string v1, "no read access for the input zip file"
    invoke-direct {v0, v1}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw v0
.end method
.method private verifyAllSplitFilesOfZipExists(Ljava/util/List;)Z
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Ljava/io/File;",
            ">;)Z"
        }
    .end annotation
    .line 1
    invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
    move-result-object p1
    :cond_4
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
    move-result v0
    if-eqz v0, :cond_18
    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Ljava/io/File;
    .line 2
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-nez v0, :cond_4
    const/4 p1, 0x0
    return p1
    :cond_18
    const/4 p1, 0x1
    return p1
.end method
# virtual methods
.method public addFile(Ljava/io/File;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 8
    invoke-static {p1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
    move-result-object p1
    new-instance v0, Lnet/lingala/zip4j/model/ZipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/ZipParameters;-><init>()V
    invoke-virtual {p0, p1, v0}, Lnet/lingala/zip4j/ZipFile;->addFiles(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;)V
    return-void
.end method
.method public addFile(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 9
    invoke-static {p1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
    move-result-object p1
    invoke-virtual {p0, p1, p2}, Lnet/lingala/zip4j/ZipFile;->addFiles(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;)V
    return-void
.end method
.method public addFile(Ljava/lang/String;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    new-instance v0, Lnet/lingala/zip4j/model/ZipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/ZipParameters;-><init>()V
    invoke-virtual {p0, p1, v0}, Lnet/lingala/zip4j/ZipFile;->addFile(Ljava/lang/String;Lnet/lingala/zip4j/model/ZipParameters;)V
    return-void
.end method
.method public addFile(Ljava/lang/String;Lnet/lingala/zip4j/model/ZipParameters;)V
    .registers 4
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 2
    invoke-static {p1}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_13
    .line 6
    new-instance v0, Ljava/io/File;
    invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    invoke-static {v0}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
    move-result-object p1
    invoke-virtual {p0, p1, p2}, Lnet/lingala/zip4j/ZipFile;->addFiles(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;)V
    return-void
    .line 7
    :cond_13
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "file to add is null or empty"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public addFiles(Ljava/util/List;)V
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Ljava/io/File;",
            ">;)V"
        }
    .end annotation
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    new-instance v0, Lnet/lingala/zip4j/model/ZipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/ZipParameters;-><init>()V
    invoke-virtual {p0, p1, v0}, Lnet/lingala/zip4j/ZipFile;->addFiles(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;)V
    return-void
.end method
.method public addFiles(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;)V
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Ljava/io/File;",
            ">;",
            "Lnet/lingala/zip4j/model/ZipParameters;",
            ")V"
        }
    .end annotation
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_56
    .line 2
    invoke-interface {p1}, Ljava/util/List;->size()I
    move-result v0
    if-eqz v0, :cond_56
    if-eqz p2, :cond_4e
    .line 10
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 12
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_46
    .line 16
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-eqz v0, :cond_2a
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->isSplitArchive()Z
    move-result v0
    if-nez v0, :cond_22
    goto :goto_2a
    .line 17
    :cond_22
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "Zip file already exists. Zip file format does not allow updating split/spanned files"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 20
    :cond_2a
    :goto_2a
    new-instance v0, Lnet/lingala/zip4j/tasks/AddFilesToZipTask;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    iget-object v3, p0, Lnet/lingala/zip4j/ZipFile;->headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v4
    invoke-direct {v0, v1, v2, v3, v4}, Lnet/lingala/zip4j/tasks/AddFilesToZipTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;[CLnet/lingala/zip4j/headers/HeaderWriter;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance v1, Lnet/lingala/zip4j/tasks/AddFilesToZipTask$AddFilesToZipTaskParameters;
    .line 21
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v2
    invoke-direct {v1, p1, p2, v2}, Lnet/lingala/zip4j/tasks/AddFilesToZipTask$AddFilesToZipTaskParameters;-><init>(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 22
    invoke-virtual {v0, v1}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 23
    :cond_46
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "internal error: zip model is null"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 24
    :cond_4e
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input parameters are null"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 25
    :cond_56
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input file List is null or empty"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public addFolder(Ljava/io/File;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    new-instance v0, Lnet/lingala/zip4j/model/ZipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/ZipParameters;-><init>()V
    invoke-virtual {p0, p1, v0}, Lnet/lingala/zip4j/ZipFile;->addFolder(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;)V
    return-void
.end method
.method public addFolder(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;)V
    .registers 4
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_3b
    .line 2
    invoke-virtual {p1}, Ljava/io/File;->exists()Z
    move-result v0
    if-eqz v0, :cond_33
    .line 6
    invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
    move-result v0
    if-eqz v0, :cond_2b
    .line 10
    invoke-virtual {p1}, Ljava/io/File;->canRead()Z
    move-result v0
    if-eqz v0, :cond_23
    if-eqz p2, :cond_1b
    const/4 v0, 0x1
    .line 18
    invoke-direct {p0, p1, p2, v0}, Lnet/lingala/zip4j/ZipFile;->addFolder(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;Z)V
    return-void
    .line 19
    :cond_1b
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input parameters are null, cannot add folder to zip file"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 20
    :cond_23
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "cannot read input folder"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 21
    :cond_2b
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input folder is not a directory"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 22
    :cond_33
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "folder does not exist"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 23
    :cond_3b
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input path is null, cannot add folder to zip file"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public addStream(Ljava/io/InputStream;Lnet/lingala/zip4j/model/ZipParameters;)V
    .registers 8
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_54
    if-eqz p2, :cond_4c
    const/4 v0, 0x0
    .line 1
    invoke-virtual {p0, v0}, Lnet/lingala/zip4j/ZipFile;->setRunInThread(Z)V
    .line 3
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 5
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_44
    .line 9
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-eqz v0, :cond_28
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->isSplitArchive()Z
    move-result v0
    if-nez v0, :cond_20
    goto :goto_28
    .line 10
    :cond_20
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "Zip file already exists. Zip file format does not allow updating split/spanned files"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 13
    :cond_28
    :goto_28
    new-instance v0, Lnet/lingala/zip4j/tasks/AddStreamToZipTask;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    iget-object v3, p0, Lnet/lingala/zip4j/ZipFile;->headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v4
    invoke-direct {v0, v1, v2, v3, v4}, Lnet/lingala/zip4j/tasks/AddStreamToZipTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;[CLnet/lingala/zip4j/headers/HeaderWriter;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance v1, Lnet/lingala/zip4j/tasks/AddStreamToZipTask$AddStreamToZipTaskParameters;
    .line 14
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v2
    invoke-direct {v1, p1, p2, v2}, Lnet/lingala/zip4j/tasks/AddStreamToZipTask$AddStreamToZipTaskParameters;-><init>(Ljava/io/InputStream;Lnet/lingala/zip4j/model/ZipParameters;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 15
    invoke-virtual {v0, v1}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 16
    :cond_44
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "internal error: zip model is null"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 17
    :cond_4c
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "zip parameters are null"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 18
    :cond_54
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "inputstream is null, cannot add file to zip"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public close()V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->openInputStreams:Ljava/util/List;
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
    move-result-object v0
    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
    move-result v1
    if-eqz v1, :cond_16
    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
    move-result-object v1
    check-cast v1, Ljava/io/InputStream;
    .line 2
    invoke-virtual {v1}, Ljava/io/InputStream;->close()V
    goto :goto_6
    .line 4
    :cond_16
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->openInputStreams:Ljava/util/List;
    invoke-interface {v0}, Ljava/util/List;->clear()V
    return-void
.end method
.method public createSplitZipFile(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;ZJ)V
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Ljava/io/File;",
            ">;",
            "Lnet/lingala/zip4j/model/ZipParameters;",
            "ZJ)V"
        }
    .end annotation
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-nez v0, :cond_41
    if-eqz p1, :cond_39
    .line 6
    invoke-interface {p1}, Ljava/util/List;->size()I
    move-result v0
    if-eqz v0, :cond_39
    .line 10
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->createNewZipModel()V
    .line 11
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0, p3}, Lnet/lingala/zip4j/model/ZipModel;->setSplitArchive(Z)V
    .line 12
    iget-object p3, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {p3, p4, p5}, Lnet/lingala/zip4j/model/ZipModel;->setSplitLength(J)V
    .line 14
    new-instance p3, Lnet/lingala/zip4j/tasks/AddFilesToZipTask;
    iget-object p4, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    iget-object p5, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v1
    invoke-direct {p3, p4, p5, v0, v1}, Lnet/lingala/zip4j/tasks/AddFilesToZipTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;[CLnet/lingala/zip4j/headers/HeaderWriter;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance p4, Lnet/lingala/zip4j/tasks/AddFilesToZipTask$AddFilesToZipTaskParameters;
    .line 15
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object p5
    invoke-direct {p4, p1, p2, p5}, Lnet/lingala/zip4j/tasks/AddFilesToZipTask$AddFilesToZipTaskParameters;-><init>(Ljava/util/List;Lnet/lingala/zip4j/model/ZipParameters;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 16
    invoke-virtual {p3, p4}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 17
    :cond_39
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input file List is null, cannot create zip file"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 18
    :cond_41
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    new-instance p2, Ljava/lang/StringBuilder;
    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
    const-string p3, "zip file: "
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object p3, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    const-string p3, " already exists. To add files to existing zip file use addFile method"
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public createSplitZipFileFromFolder(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;ZJ)V
    .registers 7
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_46
    if-eqz p2, :cond_3e
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-nez v0, :cond_20
    .line 6
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->createNewZipModel()V
    .line 7
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0, p3}, Lnet/lingala/zip4j/model/ZipModel;->setSplitArchive(Z)V
    if-eqz p3, :cond_1b
    .line 10
    iget-object p3, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {p3, p4, p5}, Lnet/lingala/zip4j/model/ZipModel;->setSplitLength(J)V
    :cond_1b
    const/4 p3, 0x0
    .line 13
    invoke-direct {p0, p1, p2, p3}, Lnet/lingala/zip4j/ZipFile;->addFolder(Ljava/io/File;Lnet/lingala/zip4j/model/ZipParameters;Z)V
    return-void
    .line 14
    :cond_20
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    new-instance p2, Ljava/lang/StringBuilder;
    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
    const-string p3, "zip file: "
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object p3, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    const-string p3, " already exists. To add files to existing zip file use addFolder method"
    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p2
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 15
    :cond_3e
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input parameters are null, cannot create zip file from folder"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 16
    :cond_46
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "folderToAdd is null, cannot create zip file from folder"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public extractAll(Ljava/lang/String;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    new-instance v0, Lnet/lingala/zip4j/model/UnzipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/UnzipParameters;-><init>()V
    invoke-virtual {p0, p1, v0}, Lnet/lingala/zip4j/ZipFile;->extractAll(Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
.end method
.method public extractAll(Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    .registers 7
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 2
    invoke-static {p1}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_44
    .line 6
    new-instance v0, Ljava/io/File;
    invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
    invoke-static {v0}, Lnet/lingala/zip4j/util/Zip4jUtil;->createDirectoryIfNotExists(Ljava/io/File;)Z
    move-result v0
    if-eqz v0, :cond_3c
    .line 10
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-nez v0, :cond_18
    .line 11
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 15
    :cond_18
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_34
    .line 19
    new-instance v1, Lnet/lingala/zip4j/tasks/ExtractAllFilesTask;
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v3
    invoke-direct {v1, v0, v2, p2, v3}, Lnet/lingala/zip4j/tasks/ExtractAllFilesTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;[CLnet/lingala/zip4j/model/UnzipParameters;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance p2, Lnet/lingala/zip4j/tasks/ExtractAllFilesTask$ExtractAllFilesTaskParameters;
    .line 20
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v0
    invoke-direct {p2, p1, v0}, Lnet/lingala/zip4j/tasks/ExtractAllFilesTask$ExtractAllFilesTaskParameters;-><init>(Ljava/lang/String;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 21
    invoke-virtual {v1, p2}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 22
    :cond_34
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "Internal error occurred when extracting zip file"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 23
    :cond_3c
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "invalid output path"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 24
    :cond_44
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "output path is null or invalid"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public extractFile(Ljava/lang/String;Ljava/lang/String;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 5
    new-instance v0, Lnet/lingala/zip4j/model/UnzipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/UnzipParameters;-><init>()V
    const/4 v1, 0x0
    invoke-virtual {p0, p1, p2, v1, v0}, Lnet/lingala/zip4j/ZipFile;->extractFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
.end method
.method public extractFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 7
    new-instance v0, Lnet/lingala/zip4j/model/UnzipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/UnzipParameters;-><init>()V
    invoke-virtual {p0, p1, p2, p3, v0}, Lnet/lingala/zip4j/ZipFile;->extractFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
.end method
.method public extractFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    .registers 9
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 9
    invoke-static {p1}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_38
    .line 13
    invoke-static {p2}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_30
    if-nez p4, :cond_13
    .line 18
    new-instance p4, Lnet/lingala/zip4j/model/UnzipParameters;
    invoke-direct {p4}, Lnet/lingala/zip4j/model/UnzipParameters;-><init>()V
    .line 21
    :cond_13
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 23
    new-instance v0, Lnet/lingala/zip4j/tasks/ExtractFileTask;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v3
    invoke-direct {v0, v1, v2, p4, v3}, Lnet/lingala/zip4j/tasks/ExtractFileTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;[CLnet/lingala/zip4j/model/UnzipParameters;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance p4, Lnet/lingala/zip4j/tasks/ExtractFileTask$ExtractFileTaskParameters;
    .line 24
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v1
    invoke-direct {p4, p2, p1, p3, v1}, Lnet/lingala/zip4j/tasks/ExtractFileTask$ExtractFileTaskParameters;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 25
    invoke-virtual {v0, p4}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 26
    :cond_30
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "destination path is empty or null, cannot extract file"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 27
    :cond_38
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "file to extract is null or empty, cannot extract file"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public extractFile(Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    const/4 v0, 0x0
    .line 6
    invoke-virtual {p0, p1, p2, v0, p3}, Lnet/lingala/zip4j/ZipFile;->extractFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
.end method
.method public extractFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    new-instance v0, Lnet/lingala/zip4j/model/UnzipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/UnzipParameters;-><init>()V
    const/4 v1, 0x0
    invoke-virtual {p0, p1, p2, v1, v0}, Lnet/lingala/zip4j/ZipFile;->extractFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
.end method
.method public extractFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;Ljava/lang/String;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 8
    new-instance v0, Lnet/lingala/zip4j/model/UnzipParameters;
    invoke-direct {v0}, Lnet/lingala/zip4j/model/UnzipParameters;-><init>()V
    invoke-virtual {p0, p1, p2, p3, v0}, Lnet/lingala/zip4j/ZipFile;->extractFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
.end method
.method public extractFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_a
    .line 3
    invoke-virtual {p1}, Lnet/lingala/zip4j/model/AbstractFileHeader;->getFileName()Ljava/lang/String;
    move-result-object p1
    invoke-virtual {p0, p1, p2, p3, p4}, Lnet/lingala/zip4j/ZipFile;->extractFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
    .line 4
    :cond_a
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "input file header is null, cannot extract file"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public extractFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    const/4 v0, 0x0
    .line 2
    invoke-virtual {p0, p1, p2, v0, p3}, Lnet/lingala/zip4j/ZipFile;->extractFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;Ljava/lang/String;Lnet/lingala/zip4j/model/UnzipParameters;)V
    return-void
.end method
.method public getBufferSize()I
    .registers 2
    .line 1
    iget v0, p0, Lnet/lingala/zip4j/ZipFile;->bufferSize:I
    return v0
.end method
.method public getCharset()Ljava/nio/charset/Charset;
    .registers 2
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->charset:Ljava/nio/charset/Charset;
    if-nez v0, :cond_6
    .line 2
    sget-object v0, Lnet/lingala/zip4j/util/InternalZipConstants;->CHARSET_UTF_8:Ljava/nio/charset/Charset;
    :cond_6
    return-object v0
.end method
.method public getComment()Ljava/lang/String;
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-eqz v0, :cond_30
    .line 5
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 7
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_28
    .line 11
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getEndOfCentralDirectoryRecord()Lnet/lingala/zip4j/model/EndOfCentralDirectoryRecord;
    move-result-object v0
    if-eqz v0, :cond_20
    .line 15
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getEndOfCentralDirectoryRecord()Lnet/lingala/zip4j/model/EndOfCentralDirectoryRecord;
    move-result-object v0
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/EndOfCentralDirectoryRecord;->getComment()Ljava/lang/String;
    move-result-object v0
    return-object v0
    .line 16
    :cond_20
    new-instance v0, Lnet/lingala/zip4j/exception/ZipException;
    const-string v1, "end of central directory record is null, cannot read comment"
    invoke-direct {v0, v1}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 17
    :cond_28
    new-instance v0, Lnet/lingala/zip4j/exception/ZipException;
    const-string v1, "zip model is null, cannot read comment"
    invoke-direct {v0, v1}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 18
    :cond_30
    new-instance v0, Lnet/lingala/zip4j/exception/ZipException;
    const-string v1, "zip file does not exist, cannot read comment"
    invoke-direct {v0, v1}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw v0
.end method
.method public getExecutorService()Ljava/util/concurrent/ExecutorService;
    .registers 2
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->executorService:Ljava/util/concurrent/ExecutorService;
    return-object v0
.end method
.method public getFile()Ljava/io/File;
    .registers 2
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    return-object v0
.end method
.method public getFileHeader(Ljava/lang/String;)Lnet/lingala/zip4j/model/FileHeader;
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    invoke-static {p1}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_1d
    .line 5
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 6
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_1b
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getCentralDirectory()Lnet/lingala/zip4j/model/CentralDirectory;
    move-result-object v0
    if-nez v0, :cond_14
    goto :goto_1b
    .line 10
    :cond_14
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-static {v0, p1}, Lnet/lingala/zip4j/headers/HeaderUtil;->getFileHeader(Lnet/lingala/zip4j/model/ZipModel;Ljava/lang/String;)Lnet/lingala/zip4j/model/FileHeader;
    move-result-object p1
    return-object p1
    :cond_1b
    :goto_1b
    const/4 p1, 0x0
    return-object p1
    .line 11
    :cond_1d
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "input file name is emtpy or null, cannot get FileHeader"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public getFileHeaders()Ljava/util/List;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lnet/lingala/zip4j/model/FileHeader;",
            ">;"
        }
    .end annotation
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 2
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_19
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getCentralDirectory()Lnet/lingala/zip4j/model/CentralDirectory;
    move-result-object v0
    if-nez v0, :cond_e
    goto :goto_19
    .line 5
    :cond_e
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getCentralDirectory()Lnet/lingala/zip4j/model/CentralDirectory;
    move-result-object v0
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/CentralDirectory;->getFileHeaders()Ljava/util/List;
    move-result-object v0
    return-object v0
    .line 6
    :cond_19
    :goto_19
    invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
    move-result-object v0
    return-object v0
.end method
.method public getInputStream(Lnet/lingala/zip4j/model/FileHeader;)Lnet/lingala/zip4j/io/inputstream/ZipInputStream;
    .registers 4
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation
    if-eqz p1, :cond_1d
    .line 1
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 3
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_15
    .line 7
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    invoke-static {v0, p1, v1}, Lnet/lingala/zip4j/util/UnzipUtil;->createZipInputStream(Lnet/lingala/zip4j/model/ZipModel;Lnet/lingala/zip4j/model/FileHeader;[C)Lnet/lingala/zip4j/io/inputstream/ZipInputStream;
    move-result-object p1
    .line 8
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->openInputStreams:Ljava/util/List;
    invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    return-object p1
    .line 9
    :cond_15
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "zip model is null, cannot get inputstream"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 10
    :cond_1d
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "FileHeader is null, cannot get InputStream"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public getProgressMonitor()Lnet/lingala/zip4j/progress/ProgressMonitor;
    .registers 2
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->progressMonitor:Lnet/lingala/zip4j/progress/ProgressMonitor;
    return-object v0
.end method
.method public getSplitZipFiles()Ljava/util/List;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Ljava/io/File;",
            ">;"
        }
    .end annotation
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 2
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-static {v0}, Lnet/lingala/zip4j/util/FileUtils;->getSplitZipFiles(Lnet/lingala/zip4j/model/ZipModel;)Ljava/util/List;
    move-result-object v0
    return-object v0
.end method
.method public isEncrypted()Z
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-nez v0, :cond_14
    .line 2
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 3
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_c
    goto :goto_14
    .line 4
    :cond_c
    new-instance v0, Lnet/lingala/zip4j/exception/ZipException;
    const-string v1, "Zip Model is null"
    invoke-direct {v0, v1}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 8
    :cond_14
    :goto_14
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getCentralDirectory()Lnet/lingala/zip4j/model/CentralDirectory;
    move-result-object v0
    if-eqz v0, :cond_50
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getCentralDirectory()Lnet/lingala/zip4j/model/CentralDirectory;
    move-result-object v0
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/CentralDirectory;->getFileHeaders()Ljava/util/List;
    move-result-object v0
    if-eqz v0, :cond_50
    .line 12
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getCentralDirectory()Lnet/lingala/zip4j/model/CentralDirectory;
    move-result-object v0
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/CentralDirectory;->getFileHeaders()Ljava/util/List;
    move-result-object v0
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
    move-result-object v0
    :cond_36
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
    move-result v1
    if-eqz v1, :cond_4d
    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
    move-result-object v1
    check-cast v1, Lnet/lingala/zip4j/model/FileHeader;
    if-eqz v1, :cond_36
    .line 14
    invoke-virtual {v1}, Lnet/lingala/zip4j/model/AbstractFileHeader;->isEncrypted()Z
    move-result v1
    if-eqz v1, :cond_36
    const/4 v0, 0x1
    .line 15
    iput-boolean v0, p0, Lnet/lingala/zip4j/ZipFile;->isEncrypted:Z
    .line 21
    :cond_4d
    iget-boolean v0, p0, Lnet/lingala/zip4j/ZipFile;->isEncrypted:Z
    return v0
    .line 22
    :cond_50
    new-instance v0, Lnet/lingala/zip4j/exception/ZipException;
    const-string v1, "invalid zip file"
    invoke-direct {v0, v1}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw v0
.end method
.method public isRunInThread()Z
    .registers 2
    .line 1
    iget-boolean v0, p0, Lnet/lingala/zip4j/ZipFile;->runInThread:Z
    return v0
.end method
.method public isSplitArchive()Z
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-nez v0, :cond_14
    .line 2
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 3
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_c
    goto :goto_14
    .line 4
    :cond_c
    new-instance v0, Lnet/lingala/zip4j/exception/ZipException;
    const-string v1, "Zip Model is null"
    invoke-direct {v0, v1}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw v0
    .line 8
    :cond_14
    :goto_14
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->isSplitArchive()Z
    move-result v0
    return v0
.end method
.method public isUseUtf8CharsetForPasswords()Z
    .registers 2
    .line 1
    iget-boolean v0, p0, Lnet/lingala/zip4j/ZipFile;->useUtf8CharsetForPasswords:Z
    return v0
.end method
.method public isValidZipFile()Z
    .registers 3
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    const/4 v1, 0x0
    if-nez v0, :cond_a
    return v1
    .line 6
    :cond_a
    :try_start_a
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 8
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->isSplitArchive()Z
    move-result v0
    if-eqz v0, :cond_20
    invoke-virtual {p0}, Lnet/lingala/zip4j/ZipFile;->getSplitZipFiles()Ljava/util/List;
    move-result-object v0
    invoke-direct {p0, v0}, Lnet/lingala/zip4j/ZipFile;->verifyAllSplitFilesOfZipExists(Ljava/util/List;)Z
    move-result v0
    :try_end_1d
    .catch Ljava/lang/Exception; {:try_start_a .. :try_end_1d} :catch_22
    if-nez v0, :cond_20
    return v1
    :cond_20
    const/4 v0, 0x1
    return v0
    :catch_22
    return v1
.end method
.method public mergeSplitFiles(Ljava/io/File;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_35
    .line 1
    invoke-virtual {p1}, Ljava/io/File;->exists()Z
    move-result v0
    if-nez v0, :cond_2d
    .line 5
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 7
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_25
    .line 11
    new-instance v1, Lnet/lingala/zip4j/tasks/MergeSplitZipFileTask;
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v2
    invoke-direct {v1, v0, v2}, Lnet/lingala/zip4j/tasks/MergeSplitZipFileTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance v0, Lnet/lingala/zip4j/tasks/MergeSplitZipFileTask$MergeSplitZipFileTaskParameters;
    .line 12
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v2
    invoke-direct {v0, p1, v2}, Lnet/lingala/zip4j/tasks/MergeSplitZipFileTask$MergeSplitZipFileTaskParameters;-><init>(Ljava/io/File;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 13
    invoke-virtual {v1, v0}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 14
    :cond_25
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "zip model is null, corrupt zip file?"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 15
    :cond_2d
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "output Zip File already exists"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 16
    :cond_35
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "outputZipFile is null, cannot merge split files"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public removeFile(Ljava/lang/String;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 3
    invoke-static {p1}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_e
    .line 7
    invoke-static {p1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
    move-result-object p1
    invoke-virtual {p0, p1}, Lnet/lingala/zip4j/ZipFile;->removeFiles(Ljava/util/List;)V
    return-void
    .line 8
    :cond_e
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "file name is empty or null, cannot remove file"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public removeFile(Lnet/lingala/zip4j/model/FileHeader;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_a
    .line 1
    invoke-virtual {p1}, Lnet/lingala/zip4j/model/AbstractFileHeader;->getFileName()Ljava/lang/String;
    move-result-object p1
    invoke-virtual {p0, p1}, Lnet/lingala/zip4j/ZipFile;->removeFile(Ljava/lang/String;)V
    return-void
    .line 2
    :cond_a
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "input file header is null, cannot remove file"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public removeFiles(Ljava/util/List;)V
    .registers 6
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;)V"
        }
    .end annotation
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_3a
    .line 1
    invoke-interface {p1}, Ljava/util/List;->isEmpty()Z
    move-result v0
    if-eqz v0, :cond_9
    return-void
    .line 5
    :cond_9
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-nez v0, :cond_10
    .line 6
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 9
    :cond_10
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->isSplitArchive()Z
    move-result v0
    if-nez v0, :cond_32
    .line 13
    new-instance v0, Lnet/lingala/zip4j/tasks/RemoveFilesFromZipTask;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v3
    invoke-direct {v0, v1, v2, v3}, Lnet/lingala/zip4j/tasks/RemoveFilesFromZipTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;Lnet/lingala/zip4j/headers/HeaderWriter;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance v1, Lnet/lingala/zip4j/tasks/RemoveFilesFromZipTask$RemoveFilesFromZipTaskParameters;
    .line 14
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v2
    invoke-direct {v1, p1, v2}, Lnet/lingala/zip4j/tasks/RemoveFilesFromZipTask$RemoveFilesFromZipTaskParameters;-><init>(Ljava/util/List;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 15
    invoke-virtual {v0, v1}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 16
    :cond_32
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "Zip file format does not allow updating split/spanned files"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 17
    :cond_3a
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "fileNames list is null"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public renameFile(Ljava/lang/String;Ljava/lang/String;)V
    .registers 4
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    .line 3
    invoke-static {p1}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_1c
    .line 7
    invoke-static {p2}, Lnet/lingala/zip4j/util/Zip4jUtil;->isStringNotNullAndNotEmpty(Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_14
    .line 11
    invoke-static {p1, p2}, Ljava/util/Collections;->singletonMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
    move-result-object p1
    invoke-virtual {p0, p1}, Lnet/lingala/zip4j/ZipFile;->renameFiles(Ljava/util/Map;)V
    return-void
    .line 12
    :cond_14
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "newFileName is null or empty"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 13
    :cond_1c
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "file name to be changed is null or empty"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public renameFile(Lnet/lingala/zip4j/model/FileHeader;Ljava/lang/String;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_a
    .line 1
    invoke-virtual {p1}, Lnet/lingala/zip4j/model/AbstractFileHeader;->getFileName()Ljava/lang/String;
    move-result-object p1
    invoke-virtual {p0, p1, p2}, Lnet/lingala/zip4j/ZipFile;->renameFile(Ljava/lang/String;Ljava/lang/String;)V
    return-void
    .line 2
    :cond_a
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string p2, "File header is null"
    invoke-direct {p1, p2}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public renameFiles(Ljava/util/Map;)V
    .registers 7
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/String;",
            ">;)V"
        }
    .end annotation
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_3b
    .line 1
    invoke-interface {p1}, Ljava/util/Map;->size()I
    move-result v0
    if-nez v0, :cond_9
    return-void
    .line 5
    :cond_9
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 7
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->isSplitArchive()Z
    move-result v0
    if-nez v0, :cond_33
    .line 11
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v0
    .line 12
    new-instance v1, Lnet/lingala/zip4j/tasks/RenameFilesTask;
    iget-object v2, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    iget-object v3, p0, Lnet/lingala/zip4j/ZipFile;->headerWriter:Lnet/lingala/zip4j/headers/HeaderWriter;
    new-instance v4, Lnet/lingala/zip4j/util/RawIO;
    invoke-direct {v4}, Lnet/lingala/zip4j/util/RawIO;-><init>()V
    invoke-direct {v1, v2, v3, v4, v0}, Lnet/lingala/zip4j/tasks/RenameFilesTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;Lnet/lingala/zip4j/headers/HeaderWriter;Lnet/lingala/zip4j/util/RawIO;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance v0, Lnet/lingala/zip4j/tasks/RenameFilesTask$RenameFilesTaskParameters;
    .line 13
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v2
    invoke-direct {v0, p1, v2}, Lnet/lingala/zip4j/tasks/RenameFilesTask$RenameFilesTaskParameters;-><init>(Ljava/util/Map;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 14
    invoke-virtual {v1, v0}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 15
    :cond_33
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "Zip file format does not allow updating split/spanned files"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 16
    :cond_3b
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "fileNamesMap is null"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public setBufferSize(I)V
    .registers 3
    const/16 v0, 0x200
    if-lt p1, v0, :cond_7
    .line 1
    iput p1, p0, Lnet/lingala/zip4j/ZipFile;->bufferSize:I
    return-void
    .line 2
    :cond_7
    new-instance p1, Ljava/lang/IllegalArgumentException;
    const-string v0, "Buffer size cannot be less than 512 bytes"
    invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public setCharset(Ljava/nio/charset/Charset;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/IllegalArgumentException;
        }
    .end annotation
    if-eqz p1, :cond_5
    .line 1
    iput-object p1, p0, Lnet/lingala/zip4j/ZipFile;->charset:Ljava/nio/charset/Charset;
    return-void
    .line 2
    :cond_5
    new-instance p1, Ljava/lang/IllegalArgumentException;
    const-string v0, "charset cannot be null"
    invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public setComment(Ljava/lang/String;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lnet/lingala/zip4j/exception/ZipException;
        }
    .end annotation
    if-eqz p1, :cond_47
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z
    move-result v0
    if-eqz v0, :cond_3f
    .line 5
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->readZipInfo()V
    .line 7
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    if-eqz v0, :cond_37
    .line 11
    invoke-virtual {v0}, Lnet/lingala/zip4j/model/ZipModel;->getEndOfCentralDirectoryRecord()Lnet/lingala/zip4j/model/EndOfCentralDirectoryRecord;
    move-result-object v0
    if-eqz v0, :cond_2f
    .line 15
    new-instance v0, Lnet/lingala/zip4j/tasks/SetCommentTask;
    iget-object v1, p0, Lnet/lingala/zip4j/ZipFile;->zipModel:Lnet/lingala/zip4j/model/ZipModel;
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildAsyncParameters()Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;
    move-result-object v2
    invoke-direct {v0, v1, v2}, Lnet/lingala/zip4j/tasks/SetCommentTask;-><init>(Lnet/lingala/zip4j/model/ZipModel;Lnet/lingala/zip4j/tasks/AsyncZipTask$AsyncTaskParameters;)V
    new-instance v1, Lnet/lingala/zip4j/tasks/SetCommentTask$SetCommentTaskTaskParameters;
    .line 16
    invoke-direct {p0}, Lnet/lingala/zip4j/ZipFile;->buildConfig()Lnet/lingala/zip4j/model/Zip4jConfig;
    move-result-object v2
    invoke-direct {v1, p1, v2}, Lnet/lingala/zip4j/tasks/SetCommentTask$SetCommentTaskTaskParameters;-><init>(Ljava/lang/String;Lnet/lingala/zip4j/model/Zip4jConfig;)V
    .line 17
    invoke-virtual {v0, v1}, Lnet/lingala/zip4j/tasks/AsyncZipTask;->execute(Ljava/lang/Object;)V
    return-void
    .line 18
    :cond_2f
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "end of central directory is null, cannot set comment"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 19
    :cond_37
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "zipModel is null, cannot update zip file"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 20
    :cond_3f
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "zip file does not exist, cannot set comment for zip file"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
    .line 21
    :cond_47
    new-instance p1, Lnet/lingala/zip4j/exception/ZipException;
    const-string v0, "input comment is null, cannot update zip file"
    invoke-direct {p1, v0}, Lnet/lingala/zip4j/exception/ZipException;-><init>(Ljava/lang/String;)V
    throw p1
.end method
.method public setPassword([C)V
    .registers 2
    .line 1
    iput-object p1, p0, Lnet/lingala/zip4j/ZipFile;->password:[C
    return-void
.end method
.method public setRunInThread(Z)V
    .registers 2
    .line 1
    iput-boolean p1, p0, Lnet/lingala/zip4j/ZipFile;->runInThread:Z
    return-void
.end method
.method public setThreadFactory(Ljava/util/concurrent/ThreadFactory;)V
    .registers 2
    .line 1
    iput-object p1, p0, Lnet/lingala/zip4j/ZipFile;->threadFactory:Ljava/util/concurrent/ThreadFactory;
    return-void
.end method
.method public setUseUtf8CharsetForPasswords(Z)V
    .registers 2
    .line 1
    iput-boolean p1, p0, Lnet/lingala/zip4j/ZipFile;->useUtf8CharsetForPasswords:Z
    return-void
.end method
.method public toString()Ljava/lang/String;
    .registers 2
    .line 1
    iget-object v0, p0, Lnet/lingala/zip4j/ZipFile;->zipFile:Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->toString()Ljava/lang/String;
    move-result-object v0
    return-object v0
.end method