IOUtils.smali

.class public Lcom/cleanmaster/util/IOUtils;
.super Ljava/lang/Object;
.source "IOUtils.java"


# static fields
.field private static final BUFFER_SIZE:I = 0x8000


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

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

    return-void
.end method

.method public static closeSilently(Landroid/database/Cursor;)V
    .registers 2

    .prologue
    .line 46
    if-nez p0, :cond_3

    .line 52
    :goto_2
    return-void

    .line 49
    :cond_3
    :try_start_3
    invoke-interface {p0}, Landroid/database/Cursor;->close()V
    :try_end_6
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_6} :catch_7

    goto :goto_2

    .line 50
    :catch_7
    move-exception v0

    goto :goto_2
.end method

.method public static closeSilently(Ljava/io/Closeable;)V
    .registers 2

    .prologue
    .line 28
    if-nez p0, :cond_3

    .line 34
    :goto_2
    return-void

    .line 31
    :cond_3
    :try_start_3
    invoke-interface {p0}, Ljava/io/Closeable;->close()V
    :try_end_6
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_6} :catch_7

    goto :goto_2

    .line 32
    :catch_7
    move-exception v0

    goto :goto_2
.end method

.method public static closeSilently(Ljava/util/zip/ZipFile;)V
    .registers 2

    .prologue
    .line 37
    if-nez p0, :cond_3

    .line 43
    :goto_2
    return-void

    .line 40
    :cond_3
    :try_start_3
    invoke-virtual {p0}, Ljava/util/zip/ZipFile;->close()V
    :try_end_6
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_6} :catch_7

    goto :goto_2

    .line 41
    :catch_7
    move-exception v0

    goto :goto_2
.end method

.method public static copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I
    .registers 6
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 75
    invoke-static {p0, p1}, Lcom/cleanmaster/util/IOUtils;->copyLarge(Ljava/io/InputStream;Ljava/io/OutputStream;)J

    move-result-wide v0

    .line 76
    const-wide/32 v2, 0x7fffffff

    cmp-long v2, v0, v2

    if-lez v2, :cond_d

    .line 77
    const/4 v0, -0x1

    .line 79
    :goto_c
    return v0

    :cond_d
    long-to-int v0, v0

    goto :goto_c
.end method

.method public static copyLarge(Ljava/io/InputStream;Ljava/io/OutputStream;)J
    .registers 8
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 84
    const/16 v0, 0x1000

    new-array v2, v0, [B

    .line 85
    const-wide/16 v0, 0x0

    .line 87
    :goto_6
    const/4 v3, -0x1

    invoke-virtual {p0, v2}, Ljava/io/InputStream;->read([B)I

    move-result v4

    if-eq v3, v4, :cond_14

    .line 88
    const/4 v3, 0x0

    invoke-virtual {p1, v2, v3, v4}, Ljava/io/OutputStream;->write([BII)V

    .line 89
    int-to-long v4, v4

    add-long/2addr v0, v4

    goto :goto_6

    .line 91
    :cond_14
    return-wide v0
.end method

.method public static copyStream(Ljava/io/InputStream;Ljava/io/OutputStream;)V
    .registers 7
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    const v4, 0x8000

    const/4 v3, 0x0

    .line 56
    new-array v0, v4, [B

    .line 58
    :goto_6
    invoke-virtual {p0, v0, v3, v4}, Ljava/io/InputStream;->read([BII)I

    move-result v1

    .line 59
    const/4 v2, -0x1

    if-ne v1, v2, :cond_e

    .line 64
    return-void

    .line 62
    :cond_e
    invoke-virtual {p1, v0, v3, v1}, Ljava/io/OutputStream;->write([BII)V

    goto :goto_6
.end method

.method public static toByteArray(Ljava/io/InputStream;)[B
    .registers 2
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 68
    new-instance v0, Ljava/io/ByteArrayOutputStream;

    invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V

    .line 69
    invoke-static {p0, v0}, Lcom/cleanmaster/util/IOUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I

    .line 70
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v0

    return-object v0
.end method