MediaLoader.smali
.class public Lcom/dmcbig/mediapicker/data/MediaLoader;
.super Lcom/dmcbig/mediapicker/data/LoaderM;
# interfaces
.implements Landroid/app/LoaderManager$LoaderCallbacks;
# instance fields
.field MEDIA_PROJECTION:[Ljava/lang/String;
.field mContext:Landroid/content/Context;
.field mLoader:Lcom/dmcbig/mediapicker/data/DataCallback;
# direct methods
.method public constructor <init>(Landroid/content/Context;Lcom/dmcbig/mediapicker/data/DataCallback;)V
.registers 10
.line 1
invoke-direct {p0}, Lcom/dmcbig/mediapicker/data/LoaderM;-><init>()V
const-string v0, "_data"
const-string v1, "_display_name"
const-string v2, "date_added"
const-string v3, "media_type"
const-string v4, "_size"
const-string v5, "_id"
const-string v6, "parent"
.line 2
filled-new-array/range {v0 .. v6}, [Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/dmcbig/mediapicker/data/MediaLoader;->MEDIA_PROJECTION:[Ljava/lang/String;
.line 15
iput-object p1, p0, Lcom/dmcbig/mediapicker/data/MediaLoader;->mContext:Landroid/content/Context;
.line 16
iput-object p2, p0, Lcom/dmcbig/mediapicker/data/MediaLoader;->mLoader:Lcom/dmcbig/mediapicker/data/DataCallback;
return-void
.end method
# virtual methods
.method public onCreateLoader(ILandroid/os/Bundle;)Landroid/content/Loader;
.registers 10
const-string p1, "external"
.line 1
invoke-static {p1}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v2
.line 2
new-instance p1, Landroid/content/CursorLoader;
iget-object v1, p0, Lcom/dmcbig/mediapicker/data/MediaLoader;->mContext:Landroid/content/Context;
iget-object v3, p0, Lcom/dmcbig/mediapicker/data/MediaLoader;->MEDIA_PROJECTION:[Ljava/lang/String;
const-string v4, "media_type=1 OR media_type=3"
const/4 v5, 0x0
const-string v6, "date_added DESC"
move-object v0, p1
invoke-direct/range {v0 .. v6}, Landroid/content/CursorLoader;-><init>(Landroid/content/Context;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
return-object p1
.end method
.method public onLoadFinished(Landroid/content/Loader;Ljava/lang/Object;)V
.registers 20
move-object/from16 v0, p0
.line 1
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 2
new-instance v2, Lcom/dmcbig/mediapicker/entity/Folder;
iget-object v3, v0, Lcom/dmcbig/mediapicker/data/MediaLoader;->mContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v3
sget v4, Lcom/dmcbig/mediapicker/MediaPickerR;->MP_STRING_ALL_DIR_NAME:I
invoke-virtual {v3, v4}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Lcom/dmcbig/mediapicker/entity/Folder;-><init>(Ljava/lang/String;)V
.line 3
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 4
new-instance v3, Lcom/dmcbig/mediapicker/entity/Folder;
iget-object v4, v0, Lcom/dmcbig/mediapicker/data/MediaLoader;->mContext:Landroid/content/Context;
invoke-virtual {v4}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v4
sget v5, Lcom/dmcbig/mediapicker/MediaPickerR;->MP_STRING_VIDEO_DIR_NAME:I
invoke-virtual {v4, v5}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Lcom/dmcbig/mediapicker/entity/Folder;-><init>(Ljava/lang/String;)V
.line 5
invoke-virtual {v1, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 6
move-object/from16 v4, p2
check-cast v4, Landroid/database/Cursor;
.line 7
:goto_33
invoke-interface {v4}, Landroid/database/Cursor;->moveToNext()Z
move-result v5
if-eqz v5, :cond_b7
const-string v5, "_data"
.line 8
invoke-interface {v4, v5}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
move-result v5
invoke-interface {v4, v5}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v7
const-string v5, "_display_name"
.line 13
invoke-interface {v4, v5}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
move-result v5
invoke-interface {v4, v5}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v8
const-string v5, "date_added"
.line 14
invoke-interface {v4, v5}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
move-result v5
invoke-interface {v4, v5}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v9
const-string v5, "media_type"
.line 15
invoke-interface {v4, v5}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
move-result v5
invoke-interface {v4, v5}, Landroid/database/Cursor;->getInt(I)I
move-result v5
const-string v6, "_size"
.line 16
invoke-interface {v4, v6}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
move-result v6
invoke-interface {v4, v6}, Landroid/database/Cursor;->getLong(I)J
move-result-wide v12
const-string v6, "_id"
.line 17
invoke-interface {v4, v6}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
move-result v6
invoke-interface {v4, v6}, Landroid/database/Cursor;->getInt(I)I
move-result v14
const-wide/16 v15, 0x1
cmp-long v6, v12, v15
if-gez v6, :cond_7c
goto :goto_33
.line 20
:cond_7c
invoke-virtual {v0, v7}, Lcom/dmcbig/mediapicker/data/LoaderM;->getParent(Ljava/lang/String;)Ljava/lang/String;
move-result-object v15
.line 21
new-instance v11, Lcom/dmcbig/mediapicker/entity/Media;
move-object v6, v11
move-object/from16 p1, v4
move-object v4, v11
move v11, v5
move-object/from16 p2, v15
invoke-direct/range {v6 .. v15}, Lcom/dmcbig/mediapicker/entity/Media;-><init>(Ljava/lang/String;Ljava/lang/String;JIJILjava/lang/String;)V
.line 22
invoke-virtual {v2, v4}, Lcom/dmcbig/mediapicker/entity/Folder;->addMedias(Lcom/dmcbig/mediapicker/entity/Media;)V
const/4 v6, 0x3
if-ne v5, v6, :cond_95
.line 24
invoke-virtual {v3, v4}, Lcom/dmcbig/mediapicker/entity/Folder;->addMedias(Lcom/dmcbig/mediapicker/entity/Media;)V
:cond_95
move-object/from16 v5, p2
.line 27
invoke-virtual {v0, v1, v5}, Lcom/dmcbig/mediapicker/data/LoaderM;->hasDir(Ljava/util/ArrayList;Ljava/lang/String;)I
move-result v6
const/4 v7, -0x1
if-eq v6, v7, :cond_a8
.line 29
invoke-virtual {v1, v6}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/dmcbig/mediapicker/entity/Folder;
invoke-virtual {v5, v4}, Lcom/dmcbig/mediapicker/entity/Folder;->addMedias(Lcom/dmcbig/mediapicker/entity/Media;)V
goto :goto_b3
.line 31
:cond_a8
new-instance v6, Lcom/dmcbig/mediapicker/entity/Folder;
invoke-direct {v6, v5}, Lcom/dmcbig/mediapicker/entity/Folder;-><init>(Ljava/lang/String;)V
.line 32
invoke-virtual {v6, v4}, Lcom/dmcbig/mediapicker/entity/Folder;->addMedias(Lcom/dmcbig/mediapicker/entity/Media;)V
.line 33
invoke-virtual {v1, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:goto_b3
move-object/from16 v4, p1
goto/16 :goto_33
:cond_b7
move-object/from16 p1, v4
.line 36
iget-object v2, v0, Lcom/dmcbig/mediapicker/data/MediaLoader;->mLoader:Lcom/dmcbig/mediapicker/data/DataCallback;
invoke-interface {v2, v1}, Lcom/dmcbig/mediapicker/data/DataCallback;->onData(Ljava/util/ArrayList;)V
.line 37
invoke-interface/range {p1 .. p1}, Landroid/database/Cursor;->close()V
return-void
.end method
.method public onLoaderReset(Landroid/content/Loader;)V
.registers 2
return-void
.end method