// Path: android-imageselector-lib/src/main/java/com/netease/imageSelector/model/LocalMedia.java
// public class LocalMedia implements Serializable {
//     private String path;
//     private long duration;
//     private long lastUpdateAt;
// 
// 
//     public LocalMedia(String path, long lastUpdateAt, long duration) {
//         this.path = path;
//         this.duration = duration;
//         this.lastUpdateAt = lastUpdateAt;
//     }
// 
//     public LocalMedia(String path) {
//         this.path = path;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public long getLastUpdateAt() {
//         return lastUpdateAt;
//     }
// 
//     public void setLastUpdateAt(long lastUpdateAt) {
//         this.lastUpdateAt = lastUpdateAt;
//     }
// 
//     public long getDuration() {
//         return duration;
//     }
//     public void setDuration(long duration) {
//         this.duration = duration;
//     }
// }
// 
// Path: android-imageselector-lib/src/main/java/com/netease/imageSelector/model/LocalMediaFolder.java
// public class LocalMediaFolder implements Serializable {
//     private String name;
//     private String path;
//     private String firstImagePath;
//     private int imageNum;
//     private List<LocalMedia> images = new ArrayList<LocalMedia>();
// 
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public String getFirstImagePath() {
//         return firstImagePath;
//     }
// 
//     public void setFirstImagePath(String firstImagePath) {
//         this.firstImagePath = firstImagePath;
//     }
// 
//     public int getImageNum() {
//         return imageNum;
//     }
// 
//     public void setImageNum(int imageNum) {
//         this.imageNum = imageNum;
//     }
// 
//     public List<LocalMedia> getImages() {
//         return images;
//     }
// 
//     public void setImages(List<LocalMedia> images) {
//         this.images = images;
//     }
// }


import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import com.netease.imageSelector.R;
import com.netease.imageSelector.model.LocalMedia;
import com.netease.imageSelector.model.LocalMediaFolder;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
                        allImages.add(localMedia);
                        images.add(localMedia);
                    }
                    if (images.size() > 0) {
                        localMediaFolder.setImages(images);
                        localMediaFolder.setImageNum(localMediaFolder.getImages().size());
                        imageFolders.add(localMediaFolder);
                    }
                }

                allImageFolder.setImages(allImages);
                allImageFolder.setImageNum(allImageFolder.getImages().size());
                allImageFolder.setFirstImagePath(allImages.size() == 0 ? "" : allImages.get(0).getPath());
                allImageFolder.setName(activity.getString(R.string.all_image));
                imageFolders.add(allImageFolder);
                sortFolder(imageFolders);
                imageLoadListener.loadComplete(imageFolders);
                if (data != null) data.close();
            }

            @Override
            public void onLoaderReset(Loader<Cursor> loader) {
            }
        });
    }

    private void sortFolder(List<LocalMediaFolder> imageFolders) {
        // 文件夹按图片数量排序
        Collections.sort(imageFolders, new Comparator<LocalMediaFolder>() {
            @Override
// Path: android-imageselector-lib/src/main/java/com/netease/imageSelector/model/LocalMedia.java
// public class LocalMedia implements Serializable {
//     private String path;
//     private long duration;
//     private long lastUpdateAt;
// 
// 
//     public LocalMedia(String path, long lastUpdateAt, long duration) {
//         this.path = path;
//         this.duration = duration;
//         this.lastUpdateAt = lastUpdateAt;
//     }
// 
//     public LocalMedia(String path) {
//         this.path = path;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public long getLastUpdateAt() {
//         return lastUpdateAt;
//     }
// 
//     public void setLastUpdateAt(long lastUpdateAt) {
//         this.lastUpdateAt = lastUpdateAt;
//     }
// 
//     public long getDuration() {
//         return duration;
//     }
//     public void setDuration(long duration) {
//         this.duration = duration;
//     }
// }
// 
// Path: android-imageselector-lib/src/main/java/com/netease/imageSelector/model/LocalMediaFolder.java
// public class LocalMediaFolder implements Serializable {
//     private String name;
//     private String path;
//     private String firstImagePath;
//     private int imageNum;
//     private List<LocalMedia> images = new ArrayList<LocalMedia>();
// 
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public String getFirstImagePath() {
//         return firstImagePath;
//     }
// 
//     public void setFirstImagePath(String firstImagePath) {
//         this.firstImagePath = firstImagePath;
//     }
// 
//     public int getImageNum() {
//         return imageNum;
//     }
// 
//     public void setImageNum(int imageNum) {
//         this.imageNum = imageNum;
//     }
// 
//     public List<LocalMedia> getImages() {
//         return images;
//     }
// 
//     public void setImages(List<LocalMedia> images) {
//         this.images = images;
//     }
// }


// Path: android-imageselector-lib/src/main/java/com/netease/imageSelector/utils/LocalMediaLoader.java
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import com.netease.imageSelector.R;
import com.netease.imageSelector.model.LocalMedia;
import com.netease.imageSelector.model.LocalMediaFolder;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;

                        allImages.add(localMedia);
                        images.add(localMedia);
                    }
                    if (images.size() > 0) {
                        localMediaFolder.setImages(images);
                        localMediaFolder.setImageNum(localMediaFolder.getImages().size());
                        imageFolders.add(localMediaFolder);
                    }
                }

                allImageFolder.setImages(allImages);
                allImageFolder.setImageNum(allImageFolder.getImages().size());
                allImageFolder.setFirstImagePath(allImages.size() == 0 ? "" : allImages.get(0).getPath());
                allImageFolder.setName(activity.getString(R.string.all_image));
                imageFolders.add(allImageFolder);
                sortFolder(imageFolders);
                imageLoadListener.loadComplete(imageFolders);
                if (data != null) data.close();
            }

            @Override
            public void onLoaderReset(Loader<Cursor> loader) {
            }
        });
    }

    private void sortFolder(List<LocalMediaFolder> imageFolders) {
        // 文件夹按图片数量排序
        Collections.sort(imageFolders, new Comparator<LocalMediaFolder>() {
            @Override
            public int compare(LocalMediaFolder lhs, LocalMediaFolder rhs) {