private static AtomicBoolean isMThreadUnZip = new AtomicBoolean(true);
private static ListeningExecutorService unzipExecutor = MoreExecutors
.listeningDecorator(new ThreadPoolExecutor(2,
Math.max(Runtime.getRuntime().availableProcessors() - 2, 2), 15,
TimeUnit.SECONDS,
new LinkedBlockingQueue()));
public static abstract class UnzipListener {
public abstract void success();
public void onUnzip(float progress) {
}
public void fail(String message) {
}
}
static class UnZipCallable implements Callable {
private InputStream zipInputStream;
private File target;
private BufferedSink sink;
private BufferedSource source;
public UnZipCallable(final InputStream zipInputStream, final File target) {
this.zipInputStream = zipInputStream;