// Path: lib/src/main/java/com/razerdp/github/lib/utils/ToolUtil.java
// public class ToolUtil {
// 
//     public static boolean isEmpty(Collection<?> datas) {
//         return datas == null || datas.size() <= 0;
//     }
// 
//     public static boolean isEmpty(Map map) {
//         return map == null || map.isEmpty();
//     }
// 
// 
//     public static boolean indexInCollection(Collection who, int index) {
//         if (who == null) return false;
//         return index >= 0 && index < who.size();
//     }
// 
// 
//     public static void install(Context context, String apkPath) {
//         Intent intent = new Intent(Intent.ACTION_VIEW);
//         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
//             File file = (new File(apkPath));
//             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//             Uri apkUri = FileProvider.getUriForFile(context, "github.razerdp.friendcircle", file);
//             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//             intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
//         } else {
//             intent.setDataAndType(Uri.fromFile(new File(apkPath)),
//                     "application/vnd.android.package-archive");
//         }
//         context.startActivity(intent);
//     }
// }


import android.content.Context;
import com.razerdp.github.lib.utils.ToolUtil;
import java.util.ArrayList;
import java.util.List;
            callError("配置为空");
            return;
        }
        if (mTaskHelpers == null) {
            prepare();
        }
        startInternal();
    }

    private void prepare() {
        mTaskHelpers = new ArrayList<>();
        result = new ArrayList<>();
        for (CompressOption option : data) {
            //把每个单张图片的task的listener切换为本类的listener
            mTaskHelpers.add(new CompressTaskHelper(mContext, option, mOnCompressListener));
        }
        taskSize = mTaskHelpers.size();
    }

    private void startInternal() {
        if (ToolUtil.isEmpty(mTaskHelpers) && result.size() == taskSize) {
            //如果已经全部完成，并检查之后,则意味着已经success了
            return;
        }
        if (abort) {
            mTaskHelpers.clear();
            return;
        }
        //否则移除第一个并开始执行
        mTaskHelpers.remove(0).start();
// Path: lib/src/main/java/com/razerdp/github/lib/utils/ToolUtil.java
// public class ToolUtil {
// 
//     public static boolean isEmpty(Collection<?> datas) {
//         return datas == null || datas.size() <= 0;
//     }
// 
//     public static boolean isEmpty(Map map) {
//         return map == null || map.isEmpty();
//     }
// 
// 
//     public static boolean indexInCollection(Collection who, int index) {
//         if (who == null) return false;
//         return index >= 0 && index < who.size();
//     }
// 
// 
//     public static void install(Context context, String apkPath) {
//         Intent intent = new Intent(Intent.ACTION_VIEW);
//         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
//             File file = (new File(apkPath));
//             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//             Uri apkUri = FileProvider.getUriForFile(context, "github.razerdp.friendcircle", file);
//             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//             intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
//         } else {
//             intent.setDataAndType(Uri.fromFile(new File(apkPath)),
//                     "application/vnd.android.package-archive");
//         }
//         context.startActivity(intent);
//     }
// }


// Path: lib/src/main/java/com/razerdp/github/lib/manager/compress/CompressTaskQueue.java
import android.content.Context;
import com.razerdp.github.lib.utils.ToolUtil;
import java.util.ArrayList;
import java.util.List;

            callError("配置为空");
            return;
        }
        if (mTaskHelpers == null) {
            prepare();
        }
        startInternal();
    }

    private void prepare() {
        mTaskHelpers = new ArrayList<>();
        result = new ArrayList<>();
        for (CompressOption option : data) {
            //把每个单张图片的task的listener切换为本类的listener
            mTaskHelpers.add(new CompressTaskHelper(mContext, option, mOnCompressListener));
        }
        taskSize = mTaskHelpers.size();
    }

    private void startInternal() {
        if (ToolUtil.isEmpty(mTaskHelpers) && result.size() == taskSize) {
            //如果已经全部完成，并检查之后,则意味着已经success了
            return;
        }
        if (abort) {
            mTaskHelpers.clear();
            return;
        }
        //否则移除第一个并开始执行
        mTaskHelpers.remove(0).start();
        callCompress(taskSize - mTaskHelpers.size(), taskSize);