FileTypeHelper.smali
.class public final Lcom/imo/android/imoim/data/FileTypeHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/imo/android/imoim/data/FileTypeHelper$e;,
Lcom/imo/android/imoim/data/FileTypeHelper$Music;,
Lcom/imo/android/imoim/data/FileTypeHelper$b;,
Lcom/imo/android/imoim/data/FileTypeHelper$d;,
Lcom/imo/android/imoim/data/FileTypeHelper$a;,
Lcom/imo/android/imoim/data/FileTypeHelper$c;
}
.end annotation
# direct methods
.method public constructor <init>()V
.registers 1
.line 44
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static a(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
.registers 6
.line 594
:try_start_0
invoke-virtual/range {p0 .. p5}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object p0
:try_end_4
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4} :catch_5
goto :goto_17
:catch_5
move-exception p0
.line 596
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
const-string p1, "exception getCursor: "
invoke-virtual {p1, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const/4 p1, 0x1
const-string p2, "FileTypeHelper"
.line 3079
invoke-static {p2, p0, p1}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
const/4 p0, 0x0
:goto_17
return-object p0
.end method
.method public static a(Landroid/content/Context;Ljava/lang/String;)Landroid/database/Cursor;
.registers 10
.line 271
new-instance v0, Landroid/database/MatrixCursor;
const-string v1, "_id"
const-string v2, "_display_name"
const-string v3, "title"
const-string v4, "_size"
const-string v5, "date_modified"
const-string v6, "_data"
const-string v7, "_is_directory"
filled-new-array/range {v1 .. v7}, [Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Landroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V
.line 273
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
move-result-object v1
invoke-virtual {v1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v1
.line 274
invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_41
.line 275
invoke-static {p0}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/content/Context;)Ljava/lang/String;
move-result-object v1
.line 276
new-instance v3, Ljava/io/File;
invoke-direct {v3, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 277
invoke-virtual {v3}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_41
const v1, 0x7f0f07fc
.line 278
invoke-virtual {p0, v1}, Landroid/content/Context;->getString(I)Ljava/lang/String;
move-result-object p0
invoke-static {v0, v3, v2, p0}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/database/MatrixCursor;Ljava/io/File;ILjava/lang/String;)V
const/4 p0, 0x1
goto :goto_42
:cond_41
const/4 p0, 0x0
.line 282
:goto_42
new-instance v1, Ljava/io/File;
invoke-direct {v1, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 283
invoke-virtual {v1}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object p1
if-eqz p1, :cond_68
.line 285
invoke-static {p1}, Lcom/imo/android/imoim/data/FileTypeHelper;->a([Ljava/io/File;)V
.line 286
:goto_50
array-length v1, p1
if-ge v2, v1, :cond_68
.line 287
aget-object v1, p1, v2
.line 288
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v3
if-eqz v3, :cond_65
add-int/lit8 v3, p0, 0x1
.line 289
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v4
invoke-static {v0, v1, p0, v4}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/database/MatrixCursor;Ljava/io/File;ILjava/lang/String;)V
move p0, v3
:cond_65
add-int/lit8 v2, v2, 0x1
goto :goto_50
:cond_68
return-object v0
.end method
.method private static a(Landroid/database/Cursor;Landroid/content/Context;)Landroid/database/Cursor;
.registers 15
.line 365
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;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
.line 1072
invoke-static {}, Lcom/imo/android/imoim/IMO;->a()Lcom/imo/android/imoim/IMO;
move-result-object v1
invoke-virtual {v1}, Lcom/imo/android/imoim/IMO;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
const/16 v2, 0x80
.line 1073
invoke-virtual {v1, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
move-result-object v1
.line 1074
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
.line 1075
:cond_1a
:goto_1a
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_30
.line 1076
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/content/pm/ApplicationInfo;
.line 1077
invoke-static {v4}, Lcom/imo/android/imoim/util/g;->a(Landroid/content/pm/ApplicationInfo;)Z
move-result v4
if-eqz v4, :cond_1a
.line 1078
invoke-interface {v3}, Ljava/util/Iterator;->remove()V
goto :goto_1a
.line 367
:cond_30
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 368
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_39
:goto_39
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_87
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/content/pm/ApplicationInfo;
.line 369
iget-object v5, v4, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String;
.line 370
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v6
if-nez v6, :cond_39
.line 373
new-instance v6, Ljava/io/File;
invoke-direct {v6, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 374
invoke-virtual {v6}, Ljava/io/File;->exists()Z
move-result v7
if-eqz v7, :cond_39
.line 377
invoke-virtual {v4, v0}, Landroid/content/pm/ApplicationInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
move-result-object v7
invoke-interface {v7}, Ljava/lang/CharSequence;->toString()Ljava/lang/String;
move-result-object v7
.line 378
invoke-virtual {v6}, Ljava/io/File;->length()J
move-result-wide v8
.line 379
invoke-virtual {v6}, Ljava/io/File;->lastModified()J
move-result-wide v10
.line 381
:try_start_68
iget-object v4, v4, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
const/16 v6, 0x2000
invoke-virtual {v0, v4, v6}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v4
.line 382
iget-wide v10, v4, Landroid/content/pm/PackageInfo;->lastUpdateTime:J
:try_end_72
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_68 .. :try_end_72} :catch_72
.line 387
:catch_72
new-instance v4, Lcom/imo/android/imoim/apk/c/a;
invoke-direct {v4}, Lcom/imo/android/imoim/apk/c/a;-><init>()V
.line 388
iput-object v7, v4, Lcom/imo/android/imoim/apk/c/a;->c:Ljava/lang/String;
const-string v6, ""
.line 389
iput-object v6, v4, Lcom/imo/android/imoim/apk/c/a;->b:Ljava/lang/String;
.line 390
iput-wide v8, v4, Lcom/imo/android/imoim/apk/c/a;->h:J
.line 391
iput-object v5, v4, Lcom/imo/android/imoim/apk/c/a;->a:Ljava/lang/String;
.line 392
iput-wide v10, v4, Lcom/imo/android/imoim/apk/c/a;->f:J
.line 393
invoke-interface {v3, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_39
:cond_87
if-eqz p0, :cond_156
.line 395
invoke-interface {p0}, Landroid/database/Cursor;->moveToFirst()Z
move-result v0
if-nez v0, :cond_91
goto/16 :goto_156
.line 399
:cond_91
new-instance v0, Landroid/database/MatrixCursor;
const-string v4, "_id"
const-string v5, "_display_name"
const-string v6, "title"
const-string v7, "_size"
const-string v8, "date_modified"
const-string v9, "_data"
const-string v10, "_is_directory"
filled-new-array/range {v4 .. v10}, [Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Landroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V
:cond_a8
const-string v1, "_display_name"
.line 401
invoke-interface {p0, v1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v1
const-string v4, "title"
.line 402
invoke-interface {p0, v4}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v4
const-string v5, "_size"
.line 403
invoke-interface {p0, v5}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v5
const-string v6, "date_modified"
.line 404
invoke-interface {p0, v6}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v6
const-string v7, "_data"
.line 405
invoke-interface {p0, v7}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v7
const/4 v8, 0x0
const/4 v9, 0x1
.line 408
:try_start_c8
invoke-interface {p0, v7}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v10
.line 409
invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v11
.line 410
invoke-virtual {v11, v10, v9}, Landroid/content/pm/PackageManager;->getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v12
.line 411
iget-object v12, v12, Landroid/content/pm/PackageInfo;->packageName:Ljava/lang/String;
invoke-virtual {v11, v12, v2}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
move-result-object v11
.line 412
iget-object v11, v11, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String;
invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
:try_end_e0
.catch Ljava/lang/Exception; {:try_start_c8 .. :try_end_e0} :catch_e4
if-eqz v10, :cond_ee
const/4 v10, 0x0
goto :goto_ef
:catch_e4
move-exception v10
.line 419
invoke-virtual {v10}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v10
const-string v11, "FileTypeHelper"
.line 2079
invoke-static {v11, v10, v9}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
:cond_ee
const/4 v10, 0x1
.line 421
:goto_ef
invoke-interface {p0, v7}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v11
invoke-static {v11}, Lcom/imo/android/imoim/util/bi;->a(Ljava/lang/String;)Z
move-result v11
if-eqz v11, :cond_13c
if-ne v10, v9, :cond_13c
.line 422
invoke-virtual {v0}, Landroid/database/MatrixCursor;->newRow()Landroid/database/MatrixCursor$RowBuilder;
move-result-object v10
.line 423
invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v11
invoke-virtual {v10, v11}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v10
.line 424
invoke-interface {p0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v10, v1}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v1
.line 425
invoke-interface {p0, v4}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v4}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v1
.line 426
invoke-interface {p0, v5}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v4
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
invoke-virtual {v1, v4}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v1
.line 427
invoke-interface {p0, v6}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v4
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
invoke-virtual {v1, v4}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v1
.line 428
invoke-interface {p0, v7}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v4}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v1
const-string v4, "false"
.line 429
invoke-virtual {v1, v4}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
.line 431
:cond_13c
invoke-interface {p0}, Landroid/database/Cursor;->moveToNext()Z
move-result v1
if-nez v1, :cond_a8
.line 432
invoke-interface {p0}, Landroid/database/Cursor;->close()V
.line 433
invoke-static {v3}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Ljava/util/List;)Landroid/database/MatrixCursor;
move-result-object p0
.line 434
new-instance p1, Landroid/database/MergeCursor;
const/4 v1, 0x2
new-array v1, v1, [Landroid/database/Cursor;
aput-object p0, v1, v8
aput-object v0, v1, v9
invoke-direct {p1, v1}, Landroid/database/MergeCursor;-><init>([Landroid/database/Cursor;)V
return-object p1
.line 396
:cond_156
:goto_156
invoke-static {v3}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Ljava/util/List;)Landroid/database/MatrixCursor;
move-result-object p0
return-object p0
.end method
.method public static a(Lcom/imo/android/imoim/data/FileTypeHelper$c;Landroid/content/Context;)Landroid/database/Cursor;
.registers 25
move-object/from16 v0, p0
move-object/from16 v1, p1
const-string v8, "date_modified DESC"
.line 459
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
.line 460
sget-object v3, Lcom/imo/android/imoim/data/FileTypeHelper$c;->PHONE_STORAGE:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v3, :cond_17
.line 461
invoke-static {v1, v2}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/content/Context;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v0
return-object v0
.line 464
:cond_17
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->IMO:Lcom/imo/android/imoim/data/FileTypeHelper$c;
const/4 v9, 0x0
const/4 v10, 0x1
if-ne v0, v2, :cond_ad
.line 2157
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
const-wide v2, 0x757b12c00L
sub-long/2addr v0, v2
const-wide/16 v2, 0x3e8
mul-long v0, v0, v2
.line 2160
invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v0
const-string v1, "score>"
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
const/4 v3, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
const-string v8, "score DESC"
const-string v2, "my_files"
.line 2162
invoke-static/range {v2 .. v8}, Lcom/imo/android/imoim/util/at;->a(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v0
.line 2164
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 2165
invoke-interface {v0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
move-result-object v2
.line 2166
invoke-interface {v0}, Landroid/database/Cursor;->moveToFirst()Z
move-result v3
if-eqz v3, :cond_ac
.line 2167
new-instance v3, Landroid/database/MatrixCursor;
invoke-direct {v3, v2}, Landroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V
:cond_55
const-string v4, "imdata"
.line 2169
invoke-interface {v0, v4}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v4
.line 2170
invoke-interface {v0, v4}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Lcom/imo/android/imoim/util/cg;->a(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v4
const-string v5, "url"
.line 2171
invoke-static {v5, v4}, Lcom/imo/android/imoim/util/cg;->a(Ljava/lang/String;Lorg/json/JSONObject;)Ljava/lang/String;
move-result-object v4
.line 2172
invoke-interface {v1, v4}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_a5
.line 2174
invoke-interface {v1, v4}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 2176
invoke-virtual {v3}, Landroid/database/MatrixCursor;->newRow()Landroid/database/MatrixCursor$RowBuilder;
move-result-object v4
.line 2177
array-length v5, v2
const/4 v6, 0x0
:goto_78
if-ge v6, v5, :cond_a5
aget-object v7, v2, v6
.line 2178
invoke-interface {v0, v7}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v7
.line 2179
invoke-interface {v0, v7}, Landroid/database/Cursor;->getType(I)I
move-result v8
if-eq v8, v10, :cond_97
const/4 v11, 0x3
if-eq v8, v11, :cond_8f
const-string v7, ""
.line 2187
invoke-virtual {v4, v7}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
goto :goto_a2
.line 2184
:cond_8f
invoke-interface {v0, v7}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v7
invoke-virtual {v4, v7}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
goto :goto_a2
.line 2181
:cond_97
invoke-interface {v0, v7}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v7
invoke-static {v7, v8}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v7
invoke-virtual {v4, v7}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
:goto_a2
add-int/lit8 v6, v6, 0x1
goto :goto_78
.line 2191
:cond_a5
invoke-interface {v0}, Landroid/database/Cursor;->moveToNext()Z
move-result v4
if-nez v4, :cond_55
return-object v3
:cond_ac
return-object v0
.line 468
:cond_ad
invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v11
.line 474
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->DOCUMENTS:Lcom/imo/android/imoim/data/FileTypeHelper$c;
const-string v3, "external"
const/4 v12, 0x0
if-ne v0, v2, :cond_d3
.line 475
invoke-static {v3}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v2
const-string v13, "_display_name"
const-string v14, "title"
const-string v15, "_size"
const-string v16, "_id"
const-string v17, "date_modified"
const-string v18, "_data"
.line 476
filled-new-array/range {v13 .. v18}, [Ljava/lang/String;
move-result-object v3
const-string v4, "_data REGEXP \'.*[.](pdf|doc|docx|ppt|pptx|xls)\'"
:goto_ce
move-object v13, v2
move-object v14, v3
move-object v5, v4
goto/16 :goto_14d
.line 480
:cond_d3
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->MUSIC:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v2, :cond_f5
.line 481
sget-object v2, Landroid/provider/MediaStore$Audio$Media;->EXTERNAL_CONTENT_URI:Landroid/net/Uri;
const-string v13, "_display_name"
const-string v14, "title"
const-string v15, "_size"
const-string v16, "_id"
const-string v17, "date_modified"
const-string v18, "_data"
const-string v19, "artist"
const-string v20, "title"
const-string v21, "album"
const-string v22, "duration"
.line 482
filled-new-array/range {v13 .. v22}, [Ljava/lang/String;
move-result-object v3
:goto_f1
move-object v13, v2
move-object v14, v3
move-object v5, v12
goto :goto_14d
.line 487
:cond_f5
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->VIDEOS:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v2, :cond_114
.line 488
sget-object v2, Landroid/provider/MediaStore$Video$Media;->EXTERNAL_CONTENT_URI:Landroid/net/Uri;
const-string v13, "_display_name"
const-string v14, "title"
const-string v15, "_size"
const-string v16, "_id"
const-string v17, "date_modified"
const-string v18, "_data"
const-string v19, "artist"
const-string v20, "title"
const-string v21, "album"
const-string v22, "duration"
.line 489
filled-new-array/range {v13 .. v22}, [Ljava/lang/String;
move-result-object v3
goto :goto_f1
.line 494
:cond_114
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->APPLICATIONS:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v2, :cond_12f
.line 495
invoke-static {v3}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v2
const-string v13, "_display_name"
const-string v14, "title"
const-string v15, "_size"
const-string v16, "_id"
const-string v17, "date_modified"
const-string v18, "_data"
.line 496
filled-new-array/range {v13 .. v18}, [Ljava/lang/String;
move-result-object v3
const-string v4, "_data REGEXP \'.*[.](apk)\'"
goto :goto_ce
.line 501
:cond_12f
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->ARCHIVE:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v2, :cond_14a
.line 502
invoke-static {v3}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v2
const-string v13, "_display_name"
const-string v14, "title"
const-string v15, "_size"
const-string v16, "_id"
const-string v17, "date_modified"
const-string v18, "_data"
.line 503
filled-new-array/range {v13 .. v18}, [Ljava/lang/String;
move-result-object v3
const-string v4, "_data REGEXP \'.*[.](zip|rar)\'"
goto :goto_ce
:cond_14a
move-object v5, v12
move-object v13, v5
move-object v14, v13
:goto_14d
const/4 v6, 0x0
move-object v2, v11
move-object v3, v13
move-object v4, v14
move-object v7, v8
.line 510
:try_start_152
invoke-virtual/range {v2 .. v7}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v2
:try_end_156
.catch Ljava/lang/Exception; {:try_start_152 .. :try_end_156} :catch_157
goto :goto_1ad
.line 512
:catch_157
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->DOCUMENTS:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v2, :cond_178
const-string v15, "text/plain"
const-string v16, "application/msword"
const-string v17, "application/pdf"
const-string v18, "application/vnd.ms-powerpoint"
const-string v19, "application/vnd.ms-excel"
const-string v20, "application/mspowerpoint"
const-string v21, "application/octet-stream"
.line 2564
filled-new-array/range {v15 .. v21}, [Ljava/lang/String;
move-result-object v6
const-string v5, "mime_type= ? or mime_type = ? or mime_type = ? or mime_type = ? or mime_type = ? or mime_type = ? or mime_type = ? "
move-object v2, v11
move-object v3, v13
move-object v4, v14
move-object v7, v8
.line 2568
invoke-static/range {v2 .. v7}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v2
goto :goto_1ad
.line 514
:cond_178
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->APPLICATIONS:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v2, :cond_18d
const-string v2, "application/vnd.android.package-archive"
.line 2573
filled-new-array {v2}, [Ljava/lang/String;
move-result-object v6
const-string v5, "mime_type= ? "
move-object v2, v11
move-object v3, v13
move-object v4, v14
move-object v7, v8
.line 2575
invoke-static/range {v2 .. v7}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v2
goto :goto_1ad
.line 516
:cond_18d
sget-object v2, Lcom/imo/android/imoim/data/FileTypeHelper$c;->ARCHIVE:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v2, :cond_1ac
const-string v15, "application/zip"
const-string v16, "application/x-rar-compressed"
const-string v17, "application/x-gtar"
const-string v18, "application/x-gzip"
const-string v19, "application/x-tar"
const-string v20, "application/x-compressed"
.line 2585
filled-new-array/range {v15 .. v20}, [Ljava/lang/String;
move-result-object v6
const-string v5, "mime_type= ? or mime_type= ? or mime_type= ? or mime_type= ? or mime_type= ? or mime_type= ? "
move-object v2, v11
move-object v3, v13
move-object v4, v14
move-object v7, v8
.line 2588
invoke-static/range {v2 .. v7}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v2
goto :goto_1ad
:cond_1ac
move-object v2, v12
.line 521
:goto_1ad
sget-object v3, Lcom/imo/android/imoim/data/FileTypeHelper$c;->APPLICATIONS:Lcom/imo/android/imoim/data/FileTypeHelper$c;
if-ne v0, v3, :cond_1b7
.line 524
:try_start_1b1
invoke-static {v2, v1}, Lcom/imo/android/imoim/data/FileTypeHelper;->a(Landroid/database/Cursor;Landroid/content/Context;)Landroid/database/Cursor;
move-result-object v2
:try_end_1b5
.catch Ljava/lang/Exception; {:try_start_1b1 .. :try_end_1b5} :catch_1b6
goto :goto_1b7
:catch_1b6
nop
:cond_1b7
:goto_1b7
if-nez v2, :cond_1ba
return-object v12
.line 533
:cond_1ba
invoke-interface {v2}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
move-result-object v0
.line 534
new-instance v1, Landroid/database/MatrixCursor;
invoke-direct {v1, v0, v10}, Landroid/database/MatrixCursor;-><init>([Ljava/lang/String;I)V
.line 535
invoke-interface {v2}, Landroid/database/Cursor;->moveToFirst()Z
move-result v3
if-eqz v3, :cond_20d
:cond_1c9
const-string v3, "_data"
.line 537
invoke-interface {v2, v3}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v3
invoke-interface {v2, v3}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v3
if-nez v3, :cond_1dd
const-string v3, "FileTypeHelper"
const-string v4, "get path is null"
.line 3075
invoke-static {v3, v4}, Lcom/imo/android/imoim/util/bt;->e(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_207
.line 542
:cond_1dd
new-instance v4, Ljava/io/File;
invoke-direct {v4, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 543
invoke-virtual {v4}, Ljava/io/File;->isDirectory()Z
move-result v3
if-nez v3, :cond_207
invoke-virtual {v4}, Ljava/io/File;->exists()Z
move-result v3
if-eqz v3, :cond_207
.line 544
array-length v3, v0
new-array v3, v3, [Ljava/lang/String;
const/4 v4, 0x0
.line 545
:goto_1f2
array-length v5, v0
if-ge v4, v5, :cond_204
.line 546
aget-object v5, v0, v4
invoke-interface {v2, v5}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v5
invoke-interface {v2, v5}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v5
aput-object v5, v3, v4
add-int/lit8 v4, v4, 0x1
goto :goto_1f2
.line 548
:cond_204
invoke-virtual {v1, v3}, Landroid/database/MatrixCursor;->addRow([Ljava/lang/Object;)V
.line 550
:cond_207
:goto_207
invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
move-result v3
if-nez v3, :cond_1c9
:cond_20d
return-object v1
.end method
.method private static a(Ljava/util/List;)Landroid/database/MatrixCursor;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/imo/android/imoim/apk/c/a;",
">;)",
"Landroid/database/MatrixCursor;"
}
.end annotation
.line 438
new-instance v0, Lcom/imo/android/imoim/data/FileTypeHelper$2;
invoke-direct {v0}, Lcom/imo/android/imoim/data/FileTypeHelper$2;-><init>()V
invoke-static {p0, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 446
new-instance v0, Landroid/database/MatrixCursor;
const-string v1, "_id"
const-string v2, "_display_name"
const-string v3, "title"
const-string v4, "_size"
const-string v5, "date_modified"
const-string v6, "_data"
const-string v7, "_is_directory"
filled-new-array/range {v1 .. v7}, [Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Landroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V
.line 447
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_23
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_68
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/imo/android/imoim/apk/c/a;
.line 448
invoke-virtual {v0}, Landroid/database/MatrixCursor;->newRow()Landroid/database/MatrixCursor$RowBuilder;
move-result-object v2
const/4 v3, 0x1
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v2, v3}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v2
iget-object v3, v1, Lcom/imo/android/imoim/apk/c/a;->c:Ljava/lang/String;
invoke-virtual {v2, v3}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v2
iget-object v3, v1, Lcom/imo/android/imoim/apk/c/a;->b:Ljava/lang/String;
.line 449
invoke-virtual {v2, v3}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v2
iget-wide v3, v1, Lcom/imo/android/imoim/apk/c/a;->h:J
.line 450
invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v3
invoke-virtual {v2, v3}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v2
iget-wide v3, v1, Lcom/imo/android/imoim/apk/c/a;->f:J
.line 451
invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v3
invoke-virtual {v2, v3}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v2
iget-object v1, v1, Lcom/imo/android/imoim/apk/c/a;->a:Ljava/lang/String;
.line 452
invoke-virtual {v2, v1}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object v1
const-string v2, "false"
.line 453
invoke-virtual {v1, v2}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
goto :goto_23
:cond_68
return-object v0
.end method
.method public static a(Landroid/content/Context;)Ljava/lang/String;
.registers 10
const-string v0, ""
:try_start_2
const-string v1, "storage"
.line 300
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/os/storage/StorageManager;
const-string v1, "android.os.storage.StorageVolume"
.line 301
invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
.line 302
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
const-string v3, "getVolumeList"
const/4 v4, 0x0
new-array v5, v4, [Ljava/lang/Class;
invoke-virtual {v2, v3, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
const-string v3, "getPath"
new-array v5, v4, [Ljava/lang/Class;
.line 303
invoke-virtual {v1, v3, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v3
const-string v5, "isRemovable"
new-array v6, v4, [Ljava/lang/Class;
.line 304
invoke-virtual {v1, v5, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
new-array v5, v4, [Ljava/lang/Object;
.line 305
invoke-virtual {v2, p0, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
.line 306
invoke-static {p0}, Ljava/lang/reflect/Array;->getLength(Ljava/lang/Object;)I
move-result v2
const/4 v5, 0x0
:goto_38
if-ge v5, v2, :cond_59
.line 308
invoke-static {p0, v5}, Ljava/lang/reflect/Array;->get(Ljava/lang/Object;I)Ljava/lang/Object;
move-result-object v6
new-array v7, v4, [Ljava/lang/Object;
.line 309
invoke-virtual {v3, v6, v7}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/lang/String;
new-array v8, v4, [Ljava/lang/Object;
.line 310
invoke-virtual {v1, v6, v8}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/Boolean;
invoke-virtual {v6}, Ljava/lang/Boolean;->booleanValue()Z
move-result v6
:try_end_52
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_52} :catch_59
const/4 v8, 0x1
if-ne v8, v6, :cond_56
return-object v7
:cond_56
add-int/lit8 v5, v5, 0x1
goto :goto_38
:catch_59
:cond_59
return-object v0
.end method
.method public static a(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.line 262
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_8
return-object v1
:cond_8
const/16 v0, 0x2e
.line 264
invoke-virtual {p0, v0}, Ljava/lang/String;->lastIndexOf(I)I
move-result v0
const/4 v2, -0x1
if-ne v0, v2, :cond_12
return-object v1
:cond_12
add-int/lit8 v0, v0, 0x1
.line 267
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private static a(Landroid/database/MatrixCursor;Ljava/io/File;ILjava/lang/String;)V
.registers 6
.line 323
invoke-virtual {p1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "."
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_53
.line 324
invoke-virtual {p0}, Landroid/database/MatrixCursor;->newRow()Landroid/database/MatrixCursor$RowBuilder;
move-result-object p0
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
invoke-virtual {p0, p2}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object p0
.line 325
invoke-virtual {p0, p3}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object p0
const-string p2, ""
.line 326
invoke-virtual {p0, p2}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object p0
.line 327
invoke-virtual {p1}, Ljava/io/File;->length()J
move-result-wide p2
invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p2
invoke-virtual {p0, p2}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object p0
.line 328
invoke-virtual {p1}, Ljava/io/File;->lastModified()J
move-result-wide p2
const-wide/16 v0, 0x3e8
div-long/2addr p2, v0
invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p2
invoke-virtual {p0, p2}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object p0
.line 329
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object p2
invoke-virtual {p0, p2}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
move-result-object p0
.line 330
invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
move-result p1
if-eqz p1, :cond_4e
const-string p1, "true"
goto :goto_50
:cond_4e
const-string p1, "false"
:goto_50
invoke-virtual {p0, p1}, Landroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
:cond_53
return-void
.end method
.method private static a([Ljava/io/File;)V
.registers 2
.line 335
new-instance v0, Lcom/imo/android/imoim/data/FileTypeHelper$1;
invoke-direct {v0}, Lcom/imo/android/imoim/data/FileTypeHelper$1;-><init>()V
.line 360
invoke-static {p0, v0}, Ljava/util/Arrays;->sort([Ljava/lang/Object;Ljava/util/Comparator;)V
return-void
.end method