/FileExtraction/Java_unseen/PowerExplorer_PowerFileExplorer/PowerFileExplorer/src/main/java/com/amaze/filemanager/services/asynctasks/RarHelperTask.java
//package com.amaze.filemanager.services.asynctasks;
//
///**
// * Created by Arpit on 25-01-2015.
// */
//
//import android.os.AsyncTask;
//
//import com.amaze.filemanager.fragments.ZipViewer;
//import com.github.junrar.Archive;
//import com.github.junrar.rarfile.FileHeader;
//
//import java.io.File;
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.Comparator;
//
///**
// * Created by Vishal on 11/23/2014.
// */
//public class RarHelperTask extends AsyncTask<File, Void, ArrayList<FileHeader>> {
//
//    ZipViewer zipViewer;
//    String dir;
//
//    /**
//     * AsyncTask to load RAR file items.
//     * @param zipViewer the zipViewer fragment instance
//     * @param dir
//     */
//    public RarHelperTask(ZipViewer zipViewer, String dir) {
//        this.zipViewer = zipViewer;
//        this.dir = dir;
//    }
//
//    @Override
//    protected void onPreExecute() {
//        super.onPreExecute();
//
//        zipViewer.swipeRefreshLayout.setRefreshing(true);
//    }
//
//    @Override
//    protected ArrayList<FileHeader> doInBackground(File... params) {
//        ArrayList<FileHeader> elements = new ArrayList<>();
//        try {
//            Archive zipfile = new Archive(params[0]);
//            zipViewer.archive = zipfile;
//            if (zipViewer.wholelistRar.size() == 0) {
//
//                FileHeader fh = zipfile.nextFileHeader();
//                while (fh != null) {
//                    zipViewer.wholelistRar.add(fh);
//                    fh = zipfile.nextFileHeader();
//                }
//            }
//            if (dir == null || dir.trim().length() == 0 || dir.equals("")) {
//
//                for (FileHeader header : zipViewer.wholelistRar) {
//                    String name = header.getFileNameString();
//
//                    if (!name.contains("\\")) {
//                        elements.add(header);
//
//                    }
//                }
//            } else {
//                for (FileHeader header : zipViewer.wholelistRar) {
//                    String name = header.getFileNameString();
//                    if (name.substring(0, name.lastIndexOf("\\")).equals(dir)) {
//                        elements.add(header);
//                    }
//                }
//            }
//        } catch (Exception e) {
//
//        }
//        Collections.sort(elements, new FileListSorter());
//        return elements;
//    }
//
//    @Override
//    protected void onPostExecute(ArrayList<FileHeader> zipEntries) {
//        super.onPostExecute(zipEntries);
//        zipViewer.swipeRefreshLayout.setRefreshing(false);
//        zipViewer.createRarviews(zipEntries, dir);
//    }
//
//    private class FileListSorter implements Comparator<FileHeader> {
//        @Override
//        public int compare(FileHeader file1, FileHeader file2) {
//
//            if (file1.isDirectory() && !file2.isDirectory()) {
//                return -1;
//
//
//            } else if (file2.isDirectory() && !(file1).isDirectory()) {
//                return 1;
//            }
//            return file1.getFileNameString().compareToIgnoreCase(file2.getFileNameString());
//        }
//    }
//}
//
