bu.smali

.class public final Lcom/imo/android/imoim/managers/bu;
.super Ljava/lang/Object;
.source "SourceFile"


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

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

    return-void
.end method

.method private static a(Ljava/io/File;)V
    .registers 4

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

    .line 197
    invoke-static {}, Lcom/imo/android/imoim/IMO;->a()Lcom/imo/android/imoim/IMO;

    move-result-object v0

    invoke-virtual {v0}, Lcom/imo/android/imoim/IMO;->getApplicationContext()Landroid/content/Context;

    move-result-object v0

    const/4 v1, 0x1

    new-array v1, v1, [Ljava/lang/String;

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

    move-result-object p0

    const/4 v2, 0x0

    aput-object p0, v1, v2

    const/4 p0, 0x0

    .line 196
    invoke-static {v0, v1, p0, p0}, Landroid/media/MediaScannerConnection;->scanFile(Landroid/content/Context;[Ljava/lang/String;[Ljava/lang/String;Landroid/media/MediaScannerConnection$OnScanCompletedListener;)V

    return-void
.end method

.method private a([BLjava/io/File;)V
    .registers 8

    const-string v0, "IOException e = "

    const-string v1, "SdCardStorageManager"

    if-nez p2, :cond_7

    return-void

    :cond_7
    const/4 v2, 0x0

    const/4 v3, 0x1

    .line 261
    :try_start_9
    new-instance v4, Ljava/io/FileOutputStream;

    invoke-direct {v4, p2}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
    :try_end_e
    .catch Ljava/io/IOException; {:try_start_9 .. :try_end_e} :catch_35
    .catchall {:try_start_9 .. :try_end_e} :catchall_33

    .line 262
    :try_start_e
    invoke-virtual {v4, p1}, Ljava/io/FileOutputStream;->write([B)V

    .line 263
    invoke-direct {p0, p2}, Lcom/imo/android/imoim/managers/bu;->b(Ljava/io/File;)V
    :try_end_14
    .catch Ljava/io/IOException; {:try_start_e .. :try_end_14} :catch_30
    .catchall {:try_start_e .. :try_end_14} :catchall_2d

    .line 275
    :try_start_14
    invoke-virtual {v4}, Ljava/io/FileOutputStream;->close()V
    :try_end_17
    .catch Ljava/io/IOException; {:try_start_14 .. :try_end_17} :catch_18

    return-void

    :catch_18
    move-exception p1

    .line 278
    new-instance p2, Ljava/lang/StringBuilder;

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

    invoke-virtual {p1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object p1

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

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

    move-result-object p1

    .line 7079
    invoke-static {v1, p1, v3}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    return-void

    :catchall_2d
    move-exception p1

    move-object v2, v4

    goto :goto_86

    :catch_30
    move-exception p1

    move-object v2, v4

    goto :goto_36

    :catchall_33
    move-exception p1

    goto :goto_86

    :catch_35
    move-exception p1

    .line 265
    :goto_36
    :try_start_36
    invoke-virtual {p1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object p2

    if-eqz p2, :cond_66

    invoke-virtual {p1}, Ljava/io/IOException;->getStackTrace()[Ljava/lang/StackTraceElement;

    move-result-object p2

    if-eqz p2, :cond_66

    .line 266
    new-instance p2, Ljava/lang/StringBuilder;

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

    .line 267
    invoke-virtual {p1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object v4

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

    const-string v4, "\n"

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

    invoke-virtual {p1}, Ljava/io/IOException;->getStackTrace()[Ljava/lang/StackTraceElement;

    move-result-object p1

    invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p1

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

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

    move-result-object p1

    .line 8079
    invoke-static {v1, p1, v3}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    goto :goto_6b

    :cond_66
    const-string p1, "IOException when trying to store data in offline storage."

    .line 9079
    invoke-static {v1, p1, v3}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
    :try_end_6b
    .catchall {:try_start_36 .. :try_end_6b} :catchall_33

    :goto_6b
    if-eqz v2, :cond_85

    .line 275
    :try_start_6d
    invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
    :try_end_70
    .catch Ljava/io/IOException; {:try_start_6d .. :try_end_70} :catch_71

    goto :goto_85

    :catch_71
    move-exception p1

    .line 278
    new-instance p2, Ljava/lang/StringBuilder;

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

    invoke-virtual {p1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object p1

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

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

    move-result-object p1

    .line 10079
    invoke-static {v1, p1, v3}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    :cond_85
    :goto_85
    return-void

    :goto_86
    if-eqz v2, :cond_a0

    .line 275
    :try_start_88
    invoke-virtual {v2}, Ljava/io/FileOutputStream;->close()V
    :try_end_8b
    .catch Ljava/io/IOException; {:try_start_88 .. :try_end_8b} :catch_8c

    goto :goto_a0

    :catch_8c
    move-exception p2

    .line 278
    new-instance v2, Ljava/lang/StringBuilder;

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

    invoke-virtual {p2}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object p2

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

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

    move-result-object p2

    .line 11079
    invoke-static {v1, p2, v3}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    .line 279
    :cond_a0
    :goto_a0
    throw p1
.end method

.method public static a()Z
    .registers 6

    const/4 v0, 0x1

    .line 396
    :try_start_1
    new-instance v1, Landroid/os/StatFs;

    invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

    move-result-object v2

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

    move-result-object v2

    invoke-direct {v1, v2}, Landroid/os/StatFs;-><init>(Ljava/lang/String;)V

    .line 397
    invoke-virtual {v1}, Landroid/os/StatFs;->getAvailableBlocks()I

    move-result v2

    int-to-long v2, v2

    invoke-virtual {v1}, Landroid/os/StatFs;->getBlockSize()I

    move-result v1

    int-to-long v4, v1

    mul-long v2, v2, v4

    const-wide/32 v4, 0x100000

    div-long/2addr v2, v4
    :try_end_1e
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1e} :catch_27

    const-wide/16 v4, 0x32

    cmp-long v1, v2, v4

    if-lez v1, :cond_25

    return v0

    :cond_25
    const/4 v0, 0x0

    return v0

    :catch_27
    move-exception v1

    const-string v2, "SdCardStorageManager"

    const-string v3, "exception trying to getExternalStorageDirectory"

    .line 12083
    invoke-static {v2, v3, v1, v0}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Z)V

    return v0
.end method

.method public static a(Landroid/content/Context;Ljava/lang/String;Z)Z
    .registers 4

    if-eqz p2, :cond_7

    .line 298
    invoke-static {p1}, Lcom/imo/android/imoim/managers/bu;->d(Ljava/lang/String;)Ljava/io/File;

    move-result-object p1

    goto :goto_b

    .line 299
    :cond_7
    invoke-static {p1}, Lcom/imo/android/imoim/managers/bu;->e(Ljava/lang/String;)Ljava/io/File;

    move-result-object p1

    :goto_b
    if-eqz p1, :cond_23

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

    move-result v0

    if-eqz v0, :cond_23

    .line 302
    invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object p1

    if-eqz p2, :cond_1c

    const-string p2, "jpg"

    goto :goto_1e

    :cond_1c
    const-string p2, "mp4"

    .line 301
    :goto_1e
    invoke-static {p0, p1, p2}, Lcom/imo/android/imoim/util/ei;->g(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V

    const/4 p0, 0x1

    return p0

    :cond_23
    const/4 p0, 0x0

    return p0
.end method

.method public static a(Lcom/imo/android/imoim/managers/i$f;)Z
    .registers 6

    .line 130
    iget-object v0, p0, Lcom/imo/android/imoim/managers/i$f;->a:Ljava/lang/String;

    invoke-static {v0}, Lcom/imo/android/imoim/managers/bu;->h(Ljava/lang/String;)Z

    move-result v0

    const/4 v1, 0x0

    if-eqz v0, :cond_79

    const/4 v0, 0x1

    :try_start_a
    const-string v2, "IMO images"

    .line 133
    iget-object v3, p0, Lcom/imo/android/imoim/managers/i$f;->a:Ljava/lang/String;

    const-string v4, "jpg"

    invoke-static {v2, v3, v4}, Lcom/imo/android/imoim/managers/bu;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[B

    move-result-object v1
    :try_end_14
    .catch Ljava/io/IOException; {:try_start_a .. :try_end_14} :catch_41

    .line 145
    iget-object v2, p0, Lcom/imo/android/imoim/managers/i$f;->p:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v2

    :goto_1a
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v3

    if-eqz v3, :cond_2a

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lb/a;

    .line 146
    invoke-virtual {v3, v1}, Lb/a;->a(Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_1a

    .line 148
    :cond_2a
    invoke-virtual {p0}, Lcom/imo/android/imoim/managers/i$f;->h()Z

    move-result v1

    if-eqz v1, :cond_40

    .line 149
    iget-object v1, p0, Lcom/imo/android/imoim/managers/i$f;->a:Ljava/lang/String;

    invoke-static {v1}, Lcom/imo/android/imoim/util/w;->b(Ljava/lang/String;)V

    .line 150
    sget-object v1, Lcom/imo/android/imoim/IMO;->w:Lcom/imo/android/imoim/managers/i;

    iget-object p0, p0, Lcom/imo/android/imoim/managers/i$f;->t:Ljava/lang/String;

    invoke-static {p0}, Lcom/imo/android/imoim/util/ei;->s(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    invoke-virtual {v1, p0}, Lcom/imo/android/imoim/managers/i;->d(Ljava/lang/String;)V

    :cond_40
    return v0

    :catch_41
    move-exception p0

    .line 136
    invoke-virtual {p0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object v2

    const-string v3, "SdCardStorageManager"

    if-eqz v2, :cond_74

    invoke-virtual {p0}, Ljava/io/IOException;->getStackTrace()[Ljava/lang/StackTraceElement;

    move-result-object v2

    if-eqz v2, :cond_74

    .line 137
    new-instance v2, Ljava/lang/StringBuilder;

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

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

    move-result-object v4

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

    const-string v4, "\n"

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

    .line 138
    invoke-virtual {p0}, Ljava/io/IOException;->getStackTrace()[Ljava/lang/StackTraceElement;

    move-result-object p0

    invoke-virtual {p0}, Ljava/lang/Object;->toString()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

    .line 5079
    invoke-static {v3, p0, v0}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    goto :goto_79

    :cond_74
    const-string p0, "IOException when trying to complete photo task with data from offline storage."

    .line 6079
    invoke-static {v3, p0, v0}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    :cond_79
    :goto_79
    return v1
.end method

.method public static a(Ljava/lang/String;)Z
    .registers 1

    .line 78
    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->e(Ljava/lang/String;)Ljava/io/File;

    move-result-object p0

    if-nez p0, :cond_8

    const/4 p0, 0x0

    return p0

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

    move-result p0

    return p0
.end method

.method private static a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[B
    .registers 13
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    const-string v0, "IOException = "

    const-string v1, "SdCardStorageManager"

    .line 91
    invoke-static {p0, p1, p2}, Lcom/imo/android/imoim/managers/bu;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;

    move-result-object p2

    .line 93
    invoke-static {}, Lcom/imo/android/imoim/util/ei;->u()J

    move-result-wide v2

    const/4 v4, 0x0

    const/4 v5, 0x1

    .line 96
    :try_start_e
    invoke-virtual {p2}, Ljava/io/File;->length()J

    move-result-wide v6

    long-to-int v7, v6

    new-array v6, v7, [B
    :try_end_15
    .catch Ljava/lang/OutOfMemoryError; {:try_start_e .. :try_end_15} :catch_45
    .catchall {:try_start_e .. :try_end_15} :catchall_43

    .line 97
    :try_start_15
    new-instance v8, Ljava/io/BufferedInputStream;

    new-instance v9, Ljava/io/FileInputStream;

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

    invoke-direct {v8, v9}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
    :try_end_1f
    .catch Ljava/lang/OutOfMemoryError; {:try_start_15 .. :try_end_1f} :catch_3f
    .catchall {:try_start_15 .. :try_end_1f} :catchall_43

    const/4 v4, 0x0

    .line 99
    :try_start_20
    invoke-virtual {v8, v6, v4, v7}, Ljava/io/BufferedInputStream;->read([BII)I
    :try_end_23
    .catch Ljava/lang/OutOfMemoryError; {:try_start_20 .. :try_end_23} :catch_3d
    .catchall {:try_start_20 .. :try_end_23} :catchall_a0

    .line 110
    :try_start_23
    invoke-virtual {v8}, Ljava/io/BufferedInputStream;->close()V
    :try_end_26
    .catch Ljava/io/IOException; {:try_start_23 .. :try_end_26} :catch_28

    goto/16 :goto_9f

    :catch_28
    move-exception p0

    .line 113
    new-instance p1, Ljava/lang/StringBuilder;

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

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

    move-result-object p0

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

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

    move-result-object p0

    .line 1079
    invoke-static {v1, p0, v5}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    goto :goto_9f

    :catch_3d
    move-exception v4

    goto :goto_49

    :catch_3f
    move-exception v7

    move-object v8, v4

    move-object v4, v7

    goto :goto_49

    :catchall_43
    move-exception p0

    goto :goto_a2

    :catch_45
    move-exception v6

    move-object v8, v4

    move-object v4, v6

    move-object v6, v8

    .line 101
    :goto_49
    :try_start_49
    invoke-static {}, Ljava/lang/System;->gc()V

    .line 102
    new-instance v7, Ljava/lang/StringBuilder;

    const-string v9, "usedMem: "

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

    invoke-virtual {v7, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    const-string v2, ", dirName: "

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

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

    const-string p0, ", objId: "

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

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

    const-string p0, ", fileLength: "

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

    .line 105
    invoke-virtual {p2}, Ljava/io/File;->length()J

    move-result-wide p0

    invoke-virtual {v7, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    const-string p0, ", "

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

    .line 106
    invoke-virtual {v4}, Ljava/lang/OutOfMemoryError;->getMessage()Ljava/lang/String;

    move-result-object p0

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

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

    move-result-object p0

    .line 2079
    invoke-static {v1, p0, v5}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
    :try_end_85
    .catchall {:try_start_49 .. :try_end_85} :catchall_a0

    if-eqz v8, :cond_9f

    .line 110
    :try_start_87
    invoke-virtual {v8}, Ljava/io/BufferedInputStream;->close()V
    :try_end_8a
    .catch Ljava/io/IOException; {:try_start_87 .. :try_end_8a} :catch_8b

    goto :goto_9f

    :catch_8b
    move-exception p0

    .line 113
    new-instance p1, Ljava/lang/StringBuilder;

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

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

    move-result-object p0

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

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

    move-result-object p0

    .line 3079
    invoke-static {v1, p0, v5}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    :cond_9f
    :goto_9f
    return-object v6

    :catchall_a0
    move-exception p0

    move-object v4, v8

    :goto_a2
    if-eqz v4, :cond_bc

    .line 110
    :try_start_a4
    invoke-virtual {v4}, Ljava/io/BufferedInputStream;->close()V
    :try_end_a7
    .catch Ljava/io/IOException; {:try_start_a4 .. :try_end_a7} :catch_a8

    goto :goto_bc

    :catch_a8
    move-exception p1

    .line 113
    new-instance p2, Ljava/lang/StringBuilder;

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

    invoke-virtual {p1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object p1

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

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

    move-result-object p1

    .line 4079
    invoke-static {v1, p1, v5}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    .line 114
    :cond_bc
    :goto_bc
    throw p0
.end method

.method private static b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    .registers 7

    .line 369
    new-instance v0, Ljava/io/File;

    new-instance v1, Ljava/lang/StringBuilder;

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

    .line 370
    invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

    move-result-object v2

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

    move-result-object v2

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

    const-string v2, "/"

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

    const-string v3, "IMO"

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

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

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

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

    move-result-object p0

    invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V

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

    .line 376
    invoke-virtual {p2}, Ljava/lang/String;->isEmpty()Z

    move-result p0

    if-eqz p0, :cond_35

    const-string p0, ""

    goto :goto_3f

    .line 379
    :cond_35
    invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object p0

    const-string p2, "."

    invoke-virtual {p2, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    :goto_3f
    const/4 p2, 0x0

    .line 383
    invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C

    move-result p2

    const/16 v1, 0x2e

    if-ne p2, v1, :cond_62

    .line 384
    new-instance p2, Ljava/io/File;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const/4 v2, 0x1

    .line 385
    invoke-virtual {p1, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object p1

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

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

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

    move-result-object p0

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

    goto :goto_76

    .line 387
    :cond_62
    new-instance p2, Ljava/io/File;

    new-instance v1, Ljava/lang/StringBuilder;

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

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

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

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

    move-result-object p0

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

    :goto_76
    return-object p2
.end method

.method public static b()Ljava/lang/String;
    .registers 2

    .line 486
    invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

    move-result-object v0

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

    move-result-object v0

    .line 493
    new-instance v1, Ljava/lang/StringBuilder;

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

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

    sget-object v0, Ljava/io/File;->separator:Ljava/lang/String;

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

    const-string v0, "IMO"

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

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

    move-result-object v0

    return-object v0
.end method

.method private b(Ljava/io/File;)V
    .registers 5

    if-nez p1, :cond_3

    return-void

    .line 225
    :cond_3
    invoke-static {}, Lcom/imo/android/imoim/IMO;->a()Lcom/imo/android/imoim/IMO;

    move-result-object v0

    invoke-virtual {v0}, Lcom/imo/android/imoim/IMO;->getApplicationContext()Landroid/content/Context;

    move-result-object v0

    .line 226
    sget v1, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v2, 0x13

    if-lt v1, v2, :cond_25

    const/4 v1, 0x1

    new-array v1, v1, [Ljava/lang/String;

    const/4 v2, 0x0

    .line 227
    invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object p1

    aput-object p1, v1, v2

    const/4 p1, 0x0

    new-instance v2, Lcom/imo/android/imoim/managers/bu$1;

    invoke-direct {v2, p0, v0}, Lcom/imo/android/imoim/managers/bu$1;-><init>(Lcom/imo/android/imoim/managers/bu;Landroid/content/Context;)V

    invoke-static {v0, v1, p1, v2}, Landroid/media/MediaScannerConnection;->scanFile(Landroid/content/Context;[Ljava/lang/String;[Ljava/lang/String;Landroid/media/MediaScannerConnection$OnScanCompletedListener;)V

    return-void

    .line 240
    :cond_25
    invoke-virtual {p1}, Ljava/io/File;->getParent()Ljava/lang/String;

    move-result-object p1

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

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

    .line 242
    new-instance p1, Landroid/content/Intent;

    invoke-virtual {v1}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File;

    move-result-object v1

    invoke-static {v1}, Landroid/net/Uri;->fromFile(Ljava/io/File;)Landroid/net/Uri;

    move-result-object v1

    const-string v2, "android.intent.action.MEDIA_MOUNTED"

    invoke-direct {p1, v2, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V

    invoke-virtual {v0, p1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V

    return-void
.end method

.method public static b(Ljava/lang/String;)V
    .registers 2

    .line 177
    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->h(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_d

    .line 178
    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->d(Ljava/lang/String;)Ljava/io/File;

    move-result-object p0

    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->a(Ljava/io/File;)V

    :cond_d
    return-void
.end method

.method public static c(Ljava/lang/String;)V
    .registers 2

    .line 189
    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->a(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_d

    .line 190
    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->e(Ljava/lang/String;)Ljava/io/File;

    move-result-object p0

    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->a(Ljava/io/File;)V

    :cond_d
    return-void
.end method

.method public static d(Ljava/lang/String;)Ljava/io/File;
    .registers 3

    .line 317
    invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_8

    const/4 p0, 0x0

    return-object p0

    :cond_8
    const-string v0, "IMO images"

    const-string v1, "jpg"

    .line 321
    invoke-static {v0, p0, v1}, Lcom/imo/android/imoim/managers/bu;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;

    move-result-object p0

    return-object p0
.end method

.method public static e(Ljava/lang/String;)Ljava/io/File;
    .registers 3

    .line 333
    invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_8

    const/4 p0, 0x0

    return-object p0

    :cond_8
    const-string v0, "IMO videos"

    const-string v1, "mp4"

    .line 337
    invoke-static {v0, p0, v1}, Lcom/imo/android/imoim/managers/bu;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;

    move-result-object p0

    return-object p0
.end method

.method public static f(Ljava/lang/String;)Ljava/lang/String;
    .registers 2

    .line 410
    invoke-static {p0}, Lcom/imo/android/imoim/util/bi;->b(Ljava/lang/String;)Lcom/imo/android/imoim/util/bi$a;

    move-result-object p0

    .line 411
    sget-object v0, Lcom/imo/android/imoim/managers/bu$2;->a:[I

    invoke-virtual {p0}, Lcom/imo/android/imoim/util/bi$a;->ordinal()I

    move-result p0

    aget p0, v0, p0

    const-string v0, "IMO documents"

    packed-switch p0, :pswitch_data_26

    goto :goto_20

    :pswitch_12
    const-string v0, "IMO apps"

    goto :goto_20

    :pswitch_15
    const-string v0, "IMO archives"

    goto :goto_20

    :pswitch_18
    const-string v0, "IMO audio"

    goto :goto_20

    :pswitch_1b
    const-string v0, "IMO videos"

    goto :goto_20

    :pswitch_1e
    const-string v0, "IMO images"

    .line 433
    :goto_20
    :pswitch_20
    invoke-static {v0}, Lcom/imo/android/imoim/managers/bu;->g(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    return-object p0

    nop

    :pswitch_data_26
    .packed-switch 0x1
        :pswitch_1e
        :pswitch_1b
        :pswitch_20
        :pswitch_18
        :pswitch_15
        :pswitch_12
    .end packed-switch
.end method

.method public static g(Ljava/lang/String;)Ljava/lang/String;
    .registers 3

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

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

    invoke-static {}, Lcom/imo/android/imoim/managers/bu;->b()Ljava/lang/String;

    move-result-object v1

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

    sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;

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

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

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

    move-result-object p0

    .line 478
    new-instance v0, Ljava/io/File;

    invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    const-string p0, "android.permission.WRITE_EXTERNAL_STORAGE"

    .line 479
    invoke-static {p0}, Lcom/imo/android/imoim/managers/ImoPermission;->a(Ljava/lang/String;)Z

    move-result p0

    if-eqz p0, :cond_28

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

    .line 482
    :cond_28
    invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object p0

    return-object p0
.end method

.method private static h(Ljava/lang/String;)Z
    .registers 1

    .line 62
    invoke-static {p0}, Lcom/imo/android/imoim/managers/bu;->d(Ljava/lang/String;)Ljava/io/File;

    move-result-object p0

    if-nez p0, :cond_8

    const/4 p0, 0x0

    return p0

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

    move-result p0

    return p0
.end method


# virtual methods
.method public final a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
    .registers 5

    .line 284
    invoke-static {}, Lcom/imo/android/imoim/managers/bu;->a()Z

    move-result v0

    if-nez v0, :cond_8

    const/4 p1, 0x0

    return-object p1

    .line 287
    :cond_8
    invoke-static {p2}, Lcom/imo/android/imoim/managers/bu;->e(Ljava/lang/String;)Ljava/io/File;

    move-result-object p2

    .line 289
    :try_start_c
    invoke-static {p1, p2}, Lcom/imo/android/imoim/util/bi;->c(Ljava/io/File;Ljava/io/File;)V

    .line 290
    invoke-direct {p0, p2}, Lcom/imo/android/imoim/managers/bu;->b(Ljava/io/File;)V
    :try_end_12
    .catch Ljava/io/IOException; {:try_start_c .. :try_end_12} :catch_13

    goto :goto_1e

    :catch_13
    move-exception p1

    .line 292
    invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object p1

    const/4 v0, 0x1

    const-string v1, "SdCardStorageManager"

    .line 12079
    invoke-static {v1, p1, v0}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    :goto_1e
    return-object p2
.end method

.method public final a(Ljava/lang/String;[B)Ljava/io/File;
    .registers 4

    .line 210
    invoke-static {}, Lcom/imo/android/imoim/managers/bu;->a()Z

    move-result v0

    if-nez v0, :cond_8

    const/4 p1, 0x0

    return-object p1

    .line 213
    :cond_8
    invoke-static {p1}, Lcom/imo/android/imoim/managers/bu;->d(Ljava/lang/String;)Ljava/io/File;

    move-result-object p1

    .line 214
    invoke-direct {p0, p2, p1}, Lcom/imo/android/imoim/managers/bu;->a([BLjava/io/File;)V

    return-object p1
.end method