139 lines
4.4 KiB
Java
139 lines
4.4 KiB
Java
package com.baidu.license.download;
|
|
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import com.baidu.license.download.a.a;
|
|
import com.baidu.license.download.a.trw;
|
|
import com.baidu.license.download.base.DownloadCallback;
|
|
import com.baidu.license.download.base.DownloadStatusDelivery;
|
|
import com.baidu.license.download.base.Downloader;
|
|
import com.baidu.license.download.utils.LogUtils;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
import java.util.concurrent.ExecutorService;
|
|
import java.util.concurrent.Executors;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class DownloadManager implements Downloader.OnDownloaderDestroyedListener {
|
|
private static DownloadManager f;
|
|
private oi b;
|
|
private ExecutorService c;
|
|
private DownloadStatusDelivery d;
|
|
private Handler e = new Handler(Looper.getMainLooper());
|
|
private Map<String, Downloader> a = new LinkedHashMap();
|
|
|
|
private DownloadManager() {
|
|
a(new oi());
|
|
}
|
|
|
|
public static DownloadManager c() {
|
|
if (f == null) {
|
|
synchronized (DownloadManager.class) {
|
|
if (f == null) {
|
|
f = new DownloadManager();
|
|
}
|
|
}
|
|
}
|
|
return f;
|
|
}
|
|
|
|
private boolean d(String str) {
|
|
Downloader downloader;
|
|
if (!this.a.containsKey(str) || (downloader = this.a.get(str)) == null) {
|
|
return false;
|
|
}
|
|
if (downloader.isRunning()) {
|
|
LogUtils.a("DownloadInfo has been started!");
|
|
return true;
|
|
}
|
|
LogUtils.a("DownloadInfo not started!");
|
|
return false;
|
|
}
|
|
|
|
public void b(String str) {
|
|
String c = c(str);
|
|
if (this.a.containsKey(c)) {
|
|
Downloader downloader = this.a.get(c);
|
|
if (downloader != null && downloader.isRunning()) {
|
|
downloader.pause();
|
|
}
|
|
this.a.remove(c);
|
|
}
|
|
}
|
|
|
|
private void a(oi oiVar) {
|
|
if (oiVar.b() > oiVar.a()) {
|
|
throw new IllegalArgumentException("thread num must < max thread num");
|
|
}
|
|
this.b = oiVar;
|
|
this.c = Executors.newFixedThreadPool(this.b.a());
|
|
this.d = new trw(this.e);
|
|
}
|
|
|
|
private String c(String str) {
|
|
if (str != null) {
|
|
return String.valueOf(str.hashCode());
|
|
}
|
|
throw new IllegalArgumentException("Tag can't be null!");
|
|
}
|
|
|
|
@Override // com.baidu.license.download.base.Downloader.OnDownloaderDestroyedListener
|
|
public void a(final String str, Downloader downloader) {
|
|
this.e.post(new Runnable() { // from class: com.baidu.license.download.DownloadManager.1
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
if (DownloadManager.this.a.containsKey(str)) {
|
|
DownloadManager.this.a.remove(str);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
public void b() {
|
|
this.e.post(new Runnable() { // from class: com.baidu.license.download.DownloadManager.2
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
for (Downloader downloader : DownloadManager.this.a.values()) {
|
|
if (downloader != null && downloader.isRunning()) {
|
|
downloader.pause();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
public void a(DownloadRequest downloadRequest, String str, DownloadCallback downloadCallback) {
|
|
String c = c(str);
|
|
if (d(c)) {
|
|
return;
|
|
}
|
|
a aVar = new a(downloadRequest, new com.baidu.license.download.a.nx(this.d, downloadCallback), this.c, c, this.b, this);
|
|
this.a.put(c, aVar);
|
|
aVar.start();
|
|
}
|
|
|
|
public void a(String str) {
|
|
String c = c(str);
|
|
if (this.a.containsKey(c)) {
|
|
Downloader downloader = this.a.get(c);
|
|
if (downloader != null) {
|
|
downloader.cancel();
|
|
}
|
|
this.a.remove(c);
|
|
}
|
|
}
|
|
|
|
public void a() {
|
|
this.e.post(new Runnable() { // from class: com.baidu.license.download.DownloadManager.3
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
for (Downloader downloader : DownloadManager.this.a.values()) {
|
|
if (downloader != null && downloader.isRunning()) {
|
|
downloader.cancel();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|