// Path: app/src/main/java/com/koma/filemanager/data/FileRepository.java
// public class FileRepository implements FileDataSource {
//     private static volatile FileRepository sRespository;
//     private LocalDataSource mLocalDataSource;
// 
//     private FileRepository() {
//         mLocalDataSource = new LocalDataSource(FileManagerApplication.getContext());
//     }
// 
//     public static FileRepository getInstance() {
//         if (sRespository == null) {
//             synchronized (FileRepository.class) {
//                 if (sRespository == null) {
//                     sRespository = new FileRepository();
//                 }
//             }
//         }
//         return sRespository;
//     }
// 
//     @Override
//     public Observable<String> getAuidoCounts() {
//         return mLocalDataSource.getAuidoCounts();
//     }
// 
//     @Override
//     public Observable<String> getVideoCounts() {
//         return mLocalDataSource.getVideoCounts();
//     }
// 
//     @Override
//     public Observable<String> getImageCounts() {
//         return mLocalDataSource.getImageCounts();
//     }
// 
//     @Override
//     public Observable<String> getDocumentsCounts() {
//         return mLocalDataSource.getDocumentsCounts();
//     }
// 
//     @Override
//     public Observable<String> getZipCounts() {
//         return mLocalDataSource.getZipCounts();
//     }
// 
//     @Override
//     public Observable<String> getApkCounts() {
//         return mLocalDataSource.getApkCounts();
//     }
// 
//     @Override
//     public Observable<ArrayList<Disk>> getDisks() {
//         return mLocalDataSource.getDisks();
//     }
// 
//     @Override
//     public Observable<ArrayList<AudioFile>> getAudioFiles() {
//         return mLocalDataSource.getAudioFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<ImageFile>> getImageFiles() {
//         return mLocalDataSource.getImageFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<VideoFile>> getVideoFiles() {
//         return mLocalDataSource.getVideoFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<DocumentFile>> getDocumentFiles() {
//         return null;
//     }
// 
//     @Override
//     public Observable<ArrayList<ZipFile>> getZipFiles() {
//         return mLocalDataSource.getZipFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<ApkFile>> getApkFiles() {
//         return null;
//     }
// 
//     @Override
//     public Observable<ArrayList<BaseFile>> getFiles(String path) {
//         return mLocalDataSource.getFiles(path);
//     }
// }
// 
// Path: app/src/main/java/com/koma/filemanager/data/model/Disk.java
// public class Disk {
//     private String mMountPoint, mDescription;
//     private long mTotalSpace, mVailableSpace;
// 
//     public Disk() {
//         this("", "", 0, 0);
//     }
// 
//     public Disk(String mountPoint, String description, long total, long vailableSpace) {
//         mMountPoint = mountPoint;
//         mDescription = description;
//         mTotalSpace = total;
//         mVailableSpace = vailableSpace;
//     }
// 
//     public void setMountPoint(String mountPoint) {
//         mMountPoint = mountPoint;
//     }
// 
//     public String getMountPoint() {
//         return mMountPoint;
//     }
// 
//     public void setDescription(String description) {
//         mDescription = description;
//     }
// 
//     public String getDescription() {
//         return mDescription;
//     }
// 
//     public void setTotalSpace(long totalSpace) {
//         mTotalSpace = totalSpace;
//     }
// 
//     public long getTotalSpace() {
//         return mTotalSpace;
//     }
// 
//     public void setAvailableSpace(long availableSpace) {
//         mVailableSpace = availableSpace;
//     }
// 
//     public long getAvailavleSpace() {
//         return mVailableSpace;
//     }
// }
// 
// Path: app/src/main/java/com/koma/filemanager/util/LogUtils.java
// public class LogUtils {
//     private static final boolean IS_DEBUG = true;
//     private static final String TAG = "FileManager";
// 
//     public static void i(String tag, String msg) {
//         if (IS_DEBUG) {
//             Log.i(TAG, buildString(tag, msg));
//         }
//     }
// 
//     public static void e(String tag, String msg) {
//         if (IS_DEBUG) {
//             Log.e(TAG, buildString(tag, msg));
//         }
//     }
// 
//     private static String buildString(String tag, String msg) {
//         StringBuilder sb = new StringBuilder(tag);
//         sb.append("----");
//         sb.append(msg);
//         return sb.toString();
//     }
// }


import com.koma.filemanager.data.FileRepository;
import com.koma.filemanager.data.model.Disk;
import com.koma.filemanager.util.LogUtils;
import java.util.ArrayList;
import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import rx.subscriptions.CompositeSubscription;
        mRepository = repository;
    }

    @Override
    public synchronized void getDisks() {
        LogUtils.i(TAG, "getDisks");
        mGetDisksSubscription = mRepository.getDisks().subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<ArrayList<Disk>>() {
                    @Override
                    public void onCompleted() {
                        LogUtils.i(TAG, "onCompleted");
                    }

                    @Override
                    public void onError(Throwable e) {
                        LogUtils.e(TAG, "onError error : " + e.toString());
                    }

                    @Override
                    public void onNext(ArrayList<Disk> disks) {
                        if (mView != null) {
                            onTaskCompleted(disks);
                        }
                    }
                });
        mSubsriptions.add(mGetDisksSubscription);
    }

    @Override
// Path: app/src/main/java/com/koma/filemanager/data/FileRepository.java
// public class FileRepository implements FileDataSource {
//     private static volatile FileRepository sRespository;
//     private LocalDataSource mLocalDataSource;
// 
//     private FileRepository() {
//         mLocalDataSource = new LocalDataSource(FileManagerApplication.getContext());
//     }
// 
//     public static FileRepository getInstance() {
//         if (sRespository == null) {
//             synchronized (FileRepository.class) {
//                 if (sRespository == null) {
//                     sRespository = new FileRepository();
//                 }
//             }
//         }
//         return sRespository;
//     }
// 
//     @Override
//     public Observable<String> getAuidoCounts() {
//         return mLocalDataSource.getAuidoCounts();
//     }
// 
//     @Override
//     public Observable<String> getVideoCounts() {
//         return mLocalDataSource.getVideoCounts();
//     }
// 
//     @Override
//     public Observable<String> getImageCounts() {
//         return mLocalDataSource.getImageCounts();
//     }
// 
//     @Override
//     public Observable<String> getDocumentsCounts() {
//         return mLocalDataSource.getDocumentsCounts();
//     }
// 
//     @Override
//     public Observable<String> getZipCounts() {
//         return mLocalDataSource.getZipCounts();
//     }
// 
//     @Override
//     public Observable<String> getApkCounts() {
//         return mLocalDataSource.getApkCounts();
//     }
// 
//     @Override
//     public Observable<ArrayList<Disk>> getDisks() {
//         return mLocalDataSource.getDisks();
//     }
// 
//     @Override
//     public Observable<ArrayList<AudioFile>> getAudioFiles() {
//         return mLocalDataSource.getAudioFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<ImageFile>> getImageFiles() {
//         return mLocalDataSource.getImageFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<VideoFile>> getVideoFiles() {
//         return mLocalDataSource.getVideoFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<DocumentFile>> getDocumentFiles() {
//         return null;
//     }
// 
//     @Override
//     public Observable<ArrayList<ZipFile>> getZipFiles() {
//         return mLocalDataSource.getZipFiles();
//     }
// 
//     @Override
//     public Observable<ArrayList<ApkFile>> getApkFiles() {
//         return null;
//     }
// 
//     @Override
//     public Observable<ArrayList<BaseFile>> getFiles(String path) {
//         return mLocalDataSource.getFiles(path);
//     }
// }
// 
// Path: app/src/main/java/com/koma/filemanager/data/model/Disk.java
// public class Disk {
//     private String mMountPoint, mDescription;
//     private long mTotalSpace, mVailableSpace;
// 
//     public Disk() {
//         this("", "", 0, 0);
//     }
// 
//     public Disk(String mountPoint, String description, long total, long vailableSpace) {
//         mMountPoint = mountPoint;
//         mDescription = description;
//         mTotalSpace = total;
//         mVailableSpace = vailableSpace;
//     }
// 
//     public void setMountPoint(String mountPoint) {
//         mMountPoint = mountPoint;
//     }
// 
//     public String getMountPoint() {
//         return mMountPoint;
//     }
// 
//     public void setDescription(String description) {
//         mDescription = description;
//     }
// 
//     public String getDescription() {
//         return mDescription;
//     }
// 
//     public void setTotalSpace(long totalSpace) {
//         mTotalSpace = totalSpace;
//     }
// 
//     public long getTotalSpace() {
//         return mTotalSpace;
//     }
// 
//     public void setAvailableSpace(long availableSpace) {
//         mVailableSpace = availableSpace;
//     }
// 
//     public long getAvailavleSpace() {
//         return mVailableSpace;
//     }
// }
// 
// Path: app/src/main/java/com/koma/filemanager/util/LogUtils.java
// public class LogUtils {
//     private static final boolean IS_DEBUG = true;
//     private static final String TAG = "FileManager";
// 
//     public static void i(String tag, String msg) {
//         if (IS_DEBUG) {
//             Log.i(TAG, buildString(tag, msg));
//         }
//     }
// 
//     public static void e(String tag, String msg) {
//         if (IS_DEBUG) {
//             Log.e(TAG, buildString(tag, msg));
//         }
//     }
// 
//     private static String buildString(String tag, String msg) {
//         StringBuilder sb = new StringBuilder(tag);
//         sb.append("----");
//         sb.append(msg);
//         return sb.toString();
//     }
// }


// Path: app/src/main/java/com/koma/filemanager/volumeinfo/VolumeInfoPresenter.java
import com.koma.filemanager.data.FileRepository;
import com.koma.filemanager.data.model.Disk;
import com.koma.filemanager.util.LogUtils;
import java.util.ArrayList;
import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import rx.subscriptions.CompositeSubscription;

        mRepository = repository;
    }

    @Override
    public synchronized void getDisks() {
        LogUtils.i(TAG, "getDisks");
        mGetDisksSubscription = mRepository.getDisks().subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<ArrayList<Disk>>() {
                    @Override
                    public void onCompleted() {
                        LogUtils.i(TAG, "onCompleted");
                    }

                    @Override
                    public void onError(Throwable e) {
                        LogUtils.e(TAG, "onError error : " + e.toString());
                    }

                    @Override
                    public void onNext(ArrayList<Disk> disks) {
                        if (mView != null) {
                            onTaskCompleted(disks);
                        }
                    }
                });
        mSubsriptions.add(mGetDisksSubscription);
    }

    @Override
    public void onTaskCompleted(ArrayList<Disk> disks) {