92 lines
2.8 KiB
Java
92 lines
2.8 KiB
Java
package com.squareup.picasso;
|
|
|
|
import android.net.NetworkInfo;
|
|
import com.squareup.picasso.Picasso;
|
|
import com.squareup.picasso.Utils;
|
|
import java.util.concurrent.Future;
|
|
import java.util.concurrent.FutureTask;
|
|
import java.util.concurrent.PriorityBlockingQueue;
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
/* loaded from: classes.dex */
|
|
class PicassoExecutorService extends ThreadPoolExecutor {
|
|
|
|
private static final class PicassoFutureTask extends FutureTask<BitmapHunter> implements Comparable<PicassoFutureTask> {
|
|
private final BitmapHunter a;
|
|
|
|
public PicassoFutureTask(BitmapHunter bitmapHunter) {
|
|
super(bitmapHunter, null);
|
|
this.a = bitmapHunter;
|
|
}
|
|
|
|
@Override // java.lang.Comparable
|
|
/* renamed from: a, reason: merged with bridge method [inline-methods] */
|
|
public int compareTo(PicassoFutureTask picassoFutureTask) {
|
|
Picasso.Priority l = this.a.l();
|
|
Picasso.Priority l2 = picassoFutureTask.a.l();
|
|
return l == l2 ? this.a.a - picassoFutureTask.a.a : l2.ordinal() - l.ordinal();
|
|
}
|
|
}
|
|
|
|
PicassoExecutorService() {
|
|
super(3, 3, 0L, TimeUnit.MILLISECONDS, new PriorityBlockingQueue(), new Utils.PicassoThreadFactory());
|
|
}
|
|
|
|
void a(NetworkInfo networkInfo) {
|
|
if (networkInfo == null || !networkInfo.isConnectedOrConnecting()) {
|
|
a(3);
|
|
return;
|
|
}
|
|
int type = networkInfo.getType();
|
|
if (type != 0) {
|
|
if (type == 1 || type == 6 || type == 9) {
|
|
a(4);
|
|
return;
|
|
} else {
|
|
a(3);
|
|
return;
|
|
}
|
|
}
|
|
int subtype = networkInfo.getSubtype();
|
|
switch (subtype) {
|
|
case 1:
|
|
case 2:
|
|
a(1);
|
|
return;
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
break;
|
|
default:
|
|
switch (subtype) {
|
|
case 12:
|
|
break;
|
|
case 13:
|
|
case 14:
|
|
case 15:
|
|
a(3);
|
|
break;
|
|
default:
|
|
a(3);
|
|
break;
|
|
}
|
|
return;
|
|
}
|
|
a(2);
|
|
}
|
|
|
|
@Override // java.util.concurrent.AbstractExecutorService, java.util.concurrent.ExecutorService
|
|
public Future<?> submit(Runnable runnable) {
|
|
PicassoFutureTask picassoFutureTask = new PicassoFutureTask((BitmapHunter) runnable);
|
|
execute(picassoFutureTask);
|
|
return picassoFutureTask;
|
|
}
|
|
|
|
private void a(int i) {
|
|
setCorePoolSize(i);
|
|
setMaximumPoolSize(i);
|
|
}
|
|
}
|