// Path: picturepicker/src/main/java/devin/com/picturepicker/javabean/PictureFolder.java
// public class PictureFolder implements Serializable {
// 
//     /**
//      * 图片文件夹名称
//      */
//     public String folderName;
//     /**
//      * 图片文件夹绝对路径
//      */
//     public String folderAbsPath;
//     /**
//      *  图片文件夹需要要显示的封面
//      */
//     public PictureItem folderCover;
//     /**
//      * 图片文件夹下所有的图片
//      */
//     public List<PictureItem> pictureItemList;
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o instanceof PictureFolder){
//             PictureFolder folder= (PictureFolder) o;
//             return TextUtils.equals(folder.folderAbsPath,folderAbsPath);
//         }
//         return super.equals(o);
//     }
// }
// 
// Path: picturepicker/src/main/java/devin/com/picturepicker/javabean/PictureItem.java
// public class PictureItem implements Serializable {
// 
//     /**
//      * 图片名称
//      */
//     public String pictureName;
//     /**
//      * 图片绝对路径
//      */
//     public String pictureAbsPath;
//     /**
//      * 图片类型
//      */
//     public String pictureMimeType;
//     /**
//      * 图片大小
//      */
//     public long pictureSize;
//     /**
//      * 图片加入的时间
//      */
//     public long pictureAddTime;
//     /**
//      * 图片的宽
//      */
//     public int pictureWidth;
//     /**
//      * 图片的高
//      */
//     public int pictureHeight;
// 
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o instanceof PictureItem) {
//             PictureItem pictureItem = ((PictureItem) o);
//             return TextUtils.equals(pictureItem.pictureAbsPath, pictureAbsPath)
//                     &&
//                     pictureItem.pictureAddTime == pictureAddTime;
//         }
//         return super.equals(o);
//     }
// }


import android.app.Activity;
import android.app.LoaderManager;
import android.content.Context;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.util.ArrayMap;
import android.text.TextUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import devin.com.picturepicker.R;
import devin.com.picturepicker.javabean.PictureFolder;
import devin.com.picturepicker.javabean.PictureItem;
            loader.setSelection(selection);
            String[] selectionArgs;
            if (PicturePicker.getInstance().getPickPictureOptions().isSelectGif()) {
                selectionArgs = new String[]{"image/jpeg", "image/png", "image/jpg", "image/gif", scanFolderAbsPath};
            } else {
                selectionArgs = new String[]{"image/jpeg", "image/png", "image/jpg", scanFolderAbsPath};
            }

            loader.setSelectionArgs(selectionArgs);
        }
        //按加入时间降序排列
        loader.setSortOrder(MediaStore.Images.Media.DATE_ADDED + " DESC");
        return loader;
    }


    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {

        return createLoader();
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {

        pictureFolderList.clear();

        if (data != null) {

            // new一个集合存储所有图片
// Path: picturepicker/src/main/java/devin/com/picturepicker/javabean/PictureFolder.java
// public class PictureFolder implements Serializable {
// 
//     /**
//      * 图片文件夹名称
//      */
//     public String folderName;
//     /**
//      * 图片文件夹绝对路径
//      */
//     public String folderAbsPath;
//     /**
//      *  图片文件夹需要要显示的封面
//      */
//     public PictureItem folderCover;
//     /**
//      * 图片文件夹下所有的图片
//      */
//     public List<PictureItem> pictureItemList;
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o instanceof PictureFolder){
//             PictureFolder folder= (PictureFolder) o;
//             return TextUtils.equals(folder.folderAbsPath,folderAbsPath);
//         }
//         return super.equals(o);
//     }
// }
// 
// Path: picturepicker/src/main/java/devin/com/picturepicker/javabean/PictureItem.java
// public class PictureItem implements Serializable {
// 
//     /**
//      * 图片名称
//      */
//     public String pictureName;
//     /**
//      * 图片绝对路径
//      */
//     public String pictureAbsPath;
//     /**
//      * 图片类型
//      */
//     public String pictureMimeType;
//     /**
//      * 图片大小
//      */
//     public long pictureSize;
//     /**
//      * 图片加入的时间
//      */
//     public long pictureAddTime;
//     /**
//      * 图片的宽
//      */
//     public int pictureWidth;
//     /**
//      * 图片的高
//      */
//     public int pictureHeight;
// 
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o instanceof PictureItem) {
//             PictureItem pictureItem = ((PictureItem) o);
//             return TextUtils.equals(pictureItem.pictureAbsPath, pictureAbsPath)
//                     &&
//                     pictureItem.pictureAddTime == pictureAddTime;
//         }
//         return super.equals(o);
//     }
// }


// Path: picturepicker/src/main/java/devin/com/picturepicker/pick/PictureScanner.java
import android.app.Activity;
import android.app.LoaderManager;
import android.content.Context;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.util.ArrayMap;
import android.text.TextUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import devin.com.picturepicker.R;
import devin.com.picturepicker.javabean.PictureFolder;
import devin.com.picturepicker.javabean.PictureItem;

            loader.setSelection(selection);
            String[] selectionArgs;
            if (PicturePicker.getInstance().getPickPictureOptions().isSelectGif()) {
                selectionArgs = new String[]{"image/jpeg", "image/png", "image/jpg", "image/gif", scanFolderAbsPath};
            } else {
                selectionArgs = new String[]{"image/jpeg", "image/png", "image/jpg", scanFolderAbsPath};
            }

            loader.setSelectionArgs(selectionArgs);
        }
        //按加入时间降序排列
        loader.setSortOrder(MediaStore.Images.Media.DATE_ADDED + " DESC");
        return loader;
    }


    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {

        return createLoader();
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {

        pictureFolderList.clear();

        if (data != null) {

            // new一个集合存储所有图片
            List<PictureItem> allPictureList = new ArrayList<>();