nw.smali

.class public Ldxoptimizer/nw;
.super Ljava/lang/Thread;
.source "DirectoryScanner.java"


# static fields
.field static b:Ljava/lang/reflect/Method;


# instance fields
.field public a:Z

.field private c:Ljava/io/File;

.field private d:Ljava/lang/String;

.field private e:Ldxoptimizer/od;

.field private f:Landroid/content/Context;

.field private g:Landroid/os/Handler;

.field private h:J


# direct methods
.method static constructor <clinit>()V
    .registers 0

    .prologue
    .line 46
    invoke-static {}, Ldxoptimizer/nw;->b()V

    .line 47
    return-void
.end method

.method public constructor <init>(Ljava/io/File;Landroid/content/Context;Landroid/os/Handler;Ldxoptimizer/od;Ljava/lang/String;)V
    .registers 7

    .prologue
    .line 50
    const-string v0, "Directory Scanner"

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

    .line 51
    iput-object p1, p0, Ldxoptimizer/nw;->c:Ljava/io/File;

    .line 52
    iput-object p2, p0, Ldxoptimizer/nw;->f:Landroid/content/Context;

    .line 53
    iput-object p3, p0, Ldxoptimizer/nw;->g:Landroid/os/Handler;

    .line 54
    iput-object p5, p0, Ldxoptimizer/nw;->d:Ljava/lang/String;

    .line 55
    iput-object p4, p0, Ldxoptimizer/nw;->e:Ldxoptimizer/od;

    .line 56
    return-void
.end method

.method private final a(Ljava/io/File;Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
    .registers 8

    .prologue
    const/4 v0, 0x0

    .line 229
    if-nez p2, :cond_4

    .line 263
    :cond_3
    :goto_3
    return-object v0

    .line 233
    :cond_4
    iget-object v1, p0, Ldxoptimizer/nw;->f:Landroid/content/Context;

    invoke-static {v1}, Ldxoptimizer/cfb;->a(Landroid/content/Context;)Landroid/content/pm/PackageManager;

    move-result-object v1

    .line 234
    if-eqz v1, :cond_3

    .line 238
    iget-object v2, p0, Ldxoptimizer/nw;->f:Landroid/content/Context;

    invoke-static {p1, v2}, Ldxoptimizer/ob;->a(Ljava/io/File;Landroid/content/Context;)Landroid/net/Uri;

    move-result-object v2

    .line 240
    new-instance v3, Landroid/content/Intent;

    const-string v4, "android.intent.action.VIEW"

    invoke-direct {v3, v4}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    .line 245
    invoke-virtual {v3, v2, p2}, Landroid/content/Intent;->setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;

    .line 247
    const/high16 v2, 0x10000

    invoke-virtual {v1, v3, v2}, Landroid/content/pm/PackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;

    move-result-object v2

    .line 249
    if-eqz v2, :cond_3

    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v3

    if-lez v3, :cond_3

    .line 258
    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v0

    add-int/lit8 v0, v0, -0x1

    .line 260
    invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/content/pm/ResolveInfo;

    .line 261
    invoke-virtual {v0, v1}, Landroid/content/pm/ResolveInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    goto :goto_3
.end method

.method private a()V
    .registers 2

    .prologue
    const/4 v0, 0x0

    .line 60
    iput-object v0, p0, Ldxoptimizer/nw;->f:Landroid/content/Context;

    .line 61
    iput-object v0, p0, Ldxoptimizer/nw;->g:Landroid/os/Handler;

    .line 62
    return-void
.end method

.method private a(II)V
    .registers 7

    .prologue
    .line 196
    rem-int/lit8 v0, p1, 0x32

    if-nez v0, :cond_11

    .line 198
    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v0

    .line 200
    iget-wide v2, p0, Ldxoptimizer/nw;->h:J

    sub-long/2addr v0, v2

    const-wide/16 v2, 0x3e8

    cmp-long v0, v0, v2

    if-gez v0, :cond_12

    .line 210
    :cond_11
    :goto_11
    return-void

    .line 205
    :cond_12
    iget-object v0, p0, Ldxoptimizer/nw;->g:Landroid/os/Handler;

    const/16 v1, 0x1f5

    invoke-virtual {v0, v1}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;

    move-result-object v0

    .line 206
    iput p1, v0, Landroid/os/Message;->arg1:I

    .line 207
    iput p2, v0, Landroid/os/Message;->arg2:I

    .line 208
    invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V

    goto :goto_11
.end method

.method private static b()V
    .registers 5

    .prologue
    .line 214
    :try_start_0
    const-string v0, "android.text.format.Formatter"

    invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v0

    const-string v1, "formatFileSize"

    const/4 v2, 0x2

    new-array v2, v2, [Ljava/lang/Class;

    const/4 v3, 0x0

    const-class v4, Landroid/content/Context;

    aput-object v4, v2, v3

    const/4 v3, 0x1

    sget-object v4, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    aput-object v4, v2, v3

    invoke-virtual {v0, v1, v2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v0

    sput-object v0, Ldxoptimizer/nw;->b:Ljava/lang/reflect/Method;
    :try_end_1b
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1b} :catch_1c

    .line 219
    :goto_1b
    return-void

    .line 215
    :catch_1c
    move-exception v0

    goto :goto_1b
.end method


# virtual methods
.method public run()V
    .registers 24

    .prologue
    .line 68
    move-object/from16 v0, p0

    iget-object v2, v0, Ldxoptimizer/nw;->c:Ljava/io/File;

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

    move-result-object v8

    .line 72
    move-object/from16 v0, p0

    iget-boolean v2, v0, Ldxoptimizer/nw;->a:Z

    if-eqz v2, :cond_12

    .line 74
    invoke-direct/range {p0 .. p0}, Ldxoptimizer/nw;->a()V

    .line 192
    :goto_11
    return-void

    .line 78
    :cond_12
    if-nez v8, :cond_5b

    .line 80
    const/4 v2, 0x0

    move v3, v2

    .line 85
    :goto_16
    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v4

    move-object/from16 v0, p0

    iput-wide v4, v0, Ldxoptimizer/nw;->h:J

    .line 89
    const/4 v6, 0x0

    .line 92
    new-instance v9, Ljava/util/ArrayList;

    invoke-direct {v9, v3}, Ljava/util/ArrayList;-><init>(I)V

    .line 95
    new-instance v10, Ljava/util/ArrayList;

    invoke-direct {v10, v3}, Ljava/util/ArrayList;-><init>(I)V

    .line 98
    new-instance v11, Ljava/util/ArrayList;

    const/4 v2, 0x3

    invoke-direct {v11, v2}, Ljava/util/ArrayList;-><init>(I)V

    .line 100
    new-instance v12, Ljava/util/HashMap;

    invoke-direct {v12}, Ljava/util/HashMap;-><init>()V

    .line 102
    move-object/from16 v0, p0

    iget-object v2, v0, Ldxoptimizer/nw;->f:Landroid/content/Context;

    invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v2

    const v4, 0x7f020340

    invoke-virtual {v2, v4}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable;

    move-result-object v4

    .line 104
    const/4 v5, 0x0

    .line 106
    if-eqz v8, :cond_146

    .line 107
    array-length v13, v8

    const/4 v2, 0x0

    move/from16 v22, v2

    move v2, v6

    move/from16 v6, v22

    :goto_4d
    if-ge v6, v13, :cond_146

    aget-object v14, v8, v6

    .line 108
    move-object/from16 v0, p0

    iget-boolean v7, v0, Ldxoptimizer/nw;->a:Z

    if-eqz v7, :cond_5e

    .line 111
    invoke-direct/range {p0 .. p0}, Ldxoptimizer/nw;->a()V

    goto :goto_11

    .line 82
    :cond_5b
    array-length v2, v8

    move v3, v2

    goto :goto_16

    .line 115
    :cond_5e
    add-int/lit8 v7, v2, 0x1

    .line 116
    move-object/from16 v0, p0

    invoke-direct {v0, v7, v3}, Ldxoptimizer/nw;->a(II)V

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

    move-result-object v15

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

    move-result v2

    if-eqz v2, :cond_a7

    .line 123
    move-object/from16 v0, p0

    iget-object v2, v0, Ldxoptimizer/nw;->d:Ljava/lang/String;

    invoke-virtual {v15, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_92

    .line 124
    new-instance v2, Ldxoptimizer/nx;

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

    move-result-object v14

    const-string v16, ""

    const/16 v17, 0x2

    move-object/from16 v0, v16

    move/from16 v1, v17

    invoke-direct {v2, v14, v0, v15, v1}, Ldxoptimizer/nx;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V

    invoke-interface {v11, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 107
    :goto_8d
    add-int/lit8 v2, v6, 0x1

    move v6, v2

    move v2, v7

    goto :goto_4d

    .line 126
    :cond_92
    new-instance v2, Ldxoptimizer/nx;

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

    move-result-object v14

    const-string v16, ""

    const/16 v17, 0x1

    move-object/from16 v0, v16

    move/from16 v1, v17

    invoke-direct {v2, v14, v0, v15, v1}, Ldxoptimizer/nx;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V

    invoke-interface {v9, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto :goto_8d

    .line 129
    :cond_a7
    invoke-virtual {v14}, Ljava/io/File;->getName()Ljava/lang/String;

    move-result-object v16

    .line 130
    move-object/from16 v0, p0

    iget-object v2, v0, Ldxoptimizer/nw;->e:Ldxoptimizer/od;

    move-object/from16 v0, v16

    invoke-virtual {v2, v0}, Ldxoptimizer/od;->a(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v17

    .line 131
    if-eqz v17, :cond_cf

    move-object/from16 v0, v17

    invoke-virtual {v12, v0}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z

    move-result v2

    if-nez v2, :cond_cf

    .line 132
    move-object/from16 v0, p0

    move-object/from16 v1, v17

    invoke-direct {v0, v14, v1}, Ldxoptimizer/nw;->a(Ljava/io/File;Ljava/lang/String;)Landroid/graphics/drawable/Drawable;

    move-result-object v2

    .line 133
    if-nez v2, :cond_ca

    move-object v2, v4

    .line 136
    :cond_ca
    move-object/from16 v0, v17

    invoke-virtual {v12, v0, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 139
    :cond_cf
    if-nez v5, :cond_dd

    .line 140
    const-string v2, ".nomedia"

    move-object/from16 v0, v16

    invoke-virtual {v0, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v2

    if-eqz v2, :cond_dd

    .line 142
    const/4 v2, 0x1

    move v5, v2

    .line 146
    :cond_dd
    const-string v2, ""

    .line 148
    :try_start_df
    sget-object v2, Ldxoptimizer/nw;->b:Ljava/lang/reflect/Method;

    const/16 v16, 0x0

    const/16 v17, 0x2

    move/from16 v0, v17

    new-array v0, v0, [Ljava/lang/Object;

    move-object/from16 v17, v0

    const/16 v18, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Ldxoptimizer/nw;->f:Landroid/content/Context;

    move-object/from16 v19, v0

    aput-object v19, v17, v18

    const/16 v18, 0x1

    invoke-virtual {v14}, Ljava/io/File;->length()J

    move-result-wide v20

    invoke-static/range {v20 .. v21}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v19

    aput-object v19, v17, v18

    move-object/from16 v0, v16

    move-object/from16 v1, v17

    invoke-virtual {v2, v0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/String;
    :try_end_10b
    .catch Ljava/lang/Exception; {:try_start_df .. :try_end_10b} :catch_121

    .line 164
    :goto_10b
    new-instance v16, Ldxoptimizer/nx;

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

    move-result-object v14

    const/16 v17, 0x0

    move-object/from16 v0, v16

    move/from16 v1, v17

    invoke-direct {v0, v14, v2, v15, v1}, Ldxoptimizer/nx;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V

    move-object/from16 v0, v16

    invoke-interface {v10, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto/16 :goto_8d

    .line 149
    :catch_121
    move-exception v2

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

    move-result-wide v16

    const-wide/16 v18, 0x400

    div-long v16, v16, v18

    invoke-static/range {v16 .. v17}, Ljava/lang/Long;->toString(J)Ljava/lang/String;

    move-result-object v2

    .line 157
    new-instance v16, Ljava/lang/StringBuilder;

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

    move-object/from16 v0, v16

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

    move-result-object v2

    const-string v16, " KB"

    move-object/from16 v0, v16

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

    move-result-object v2

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

    move-result-object v2

    goto :goto_10b

    .line 172
    :cond_146
    invoke-static {v9}, Ljava/util/Collections;->sort(Ljava/util/List;)V

    .line 173
    invoke-static {v10}, Ljava/util/Collections;->sort(Ljava/util/List;)V

    .line 175
    move-object/from16 v0, p0

    iget-boolean v2, v0, Ldxoptimizer/nw;->a:Z

    if-nez v2, :cond_170

    .line 178
    new-instance v2, Ldxoptimizer/nv;

    invoke-direct {v2}, Ldxoptimizer/nv;-><init>()V

    .line 180
    iput-object v9, v2, Ldxoptimizer/nv;->a:Ljava/util/List;

    .line 181
    iput-object v10, v2, Ldxoptimizer/nv;->b:Ljava/util/List;

    .line 182
    iput-object v11, v2, Ldxoptimizer/nv;->c:Ljava/util/List;

    .line 183
    iput-boolean v5, v2, Ldxoptimizer/nv;->e:Z

    .line 184
    iput-object v12, v2, Ldxoptimizer/nv;->d:Ljava/util/HashMap;

    .line 186
    move-object/from16 v0, p0

    iget-object v3, v0, Ldxoptimizer/nw;->g:Landroid/os/Handler;

    const/16 v4, 0x1f4

    invoke-virtual {v3, v4}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;

    move-result-object v3

    .line 187
    iput-object v2, v3, Landroid/os/Message;->obj:Ljava/lang/Object;

    .line 188
    invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V

    .line 191
    :cond_170
    invoke-direct/range {p0 .. p0}, Ldxoptimizer/nw;->a()V

    goto/16 :goto_11
.end method