jimu-decompiled/sources/com/liulishuo/filedownloader/download/ConnectTask.java
2025-05-13 19:24:51 +02:00

170 lines
5.3 KiB
Java

package com.liulishuo.filedownloader.download;
import android.text.TextUtils;
import com.liulishuo.filedownloader.connection.FileDownloadConnection;
import com.liulishuo.filedownloader.connection.RedirectHandler;
import com.liulishuo.filedownloader.download.ConnectionProfile;
import com.liulishuo.filedownloader.model.FileDownloadHeader;
import com.liulishuo.filedownloader.util.FileDownloadLog;
import com.liulishuo.filedownloader.util.FileDownloadUtils;
import java.io.IOException;
import java.net.ProtocolException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/* loaded from: classes.dex */
public class ConnectTask {
final int a;
final String b;
final FileDownloadHeader c;
private ConnectionProfile d;
private String e;
private Map<String, List<String>> f;
private List<String> g;
static class Builder {
private Integer a;
private String b;
private String c;
private FileDownloadHeader d;
private ConnectionProfile e;
Builder() {
}
public Builder a(int i) {
this.a = Integer.valueOf(i);
return this;
}
public Builder b(String str) {
this.b = str;
return this;
}
public Builder a(String str) {
this.c = str;
return this;
}
public Builder a(FileDownloadHeader fileDownloadHeader) {
this.d = fileDownloadHeader;
return this;
}
public Builder a(ConnectionProfile connectionProfile) {
this.e = connectionProfile;
return this;
}
ConnectTask a() {
ConnectionProfile connectionProfile;
Integer num = this.a;
if (num != null && (connectionProfile = this.e) != null && this.b != null) {
return new ConnectTask(connectionProfile, num.intValue(), this.b, this.c, this.d);
}
throw new IllegalArgumentException();
}
}
private void b(FileDownloadConnection fileDownloadConnection) {
HashMap<String, List<String>> headers;
FileDownloadHeader fileDownloadHeader = this.c;
if (fileDownloadHeader == null || (headers = fileDownloadHeader.getHeaders()) == null) {
return;
}
if (FileDownloadLog.a) {
FileDownloadLog.d(this, "%d add outside header: %s", Integer.valueOf(this.a), headers);
}
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
String key = entry.getKey();
List<String> value = entry.getValue();
if (value != null) {
Iterator<String> it = value.iterator();
while (it.hasNext()) {
fileDownloadConnection.a(key, it.next());
}
}
}
}
private void c(FileDownloadConnection fileDownloadConnection) {
FileDownloadHeader fileDownloadHeader = this.c;
if (fileDownloadHeader == null || fileDownloadHeader.getHeaders().get("User-Agent") == null) {
fileDownloadConnection.a("User-Agent", FileDownloadUtils.a());
}
}
void a(long j) {
ConnectionProfile connectionProfile = this.d;
long j2 = connectionProfile.b;
if (j == j2) {
FileDownloadLog.e(this, "no data download, no need to update", new Object[0]);
return;
}
this.d = ConnectionProfile.ConnectionProfileBuild.a(connectionProfile.a, j, connectionProfile.c, connectionProfile.d - (j - j2));
if (FileDownloadLog.a) {
FileDownloadLog.c(this, "after update profile:%s", this.d);
}
}
public Map<String, List<String>> d() {
return this.f;
}
boolean e() {
return this.d.b > 0;
}
private ConnectTask(ConnectionProfile connectionProfile, int i, String str, String str2, FileDownloadHeader fileDownloadHeader) {
this.a = i;
this.b = str;
this.e = str2;
this.c = fileDownloadHeader;
this.d = connectionProfile;
}
public ConnectionProfile c() {
return this.d;
}
FileDownloadConnection a() throws IOException, IllegalAccessException {
FileDownloadConnection a = CustomComponentHolder.i().a(this.b);
b(a);
a(a);
c(a);
this.f = a.e();
if (FileDownloadLog.a) {
FileDownloadLog.a(this, "<---- %s request header %s", Integer.valueOf(this.a), this.f);
}
a.execute();
this.g = new ArrayList();
FileDownloadConnection a2 = RedirectHandler.a(this.f, a, this.g);
if (FileDownloadLog.a) {
FileDownloadLog.a(this, "----> %s response header %s", Integer.valueOf(this.a), a2.b());
}
return a2;
}
String b() {
List<String> list = this.g;
if (list == null || list.isEmpty()) {
return null;
}
return this.g.get(r0.size() - 1);
}
private void a(FileDownloadConnection fileDownloadConnection) throws ProtocolException {
if (fileDownloadConnection.a(this.e, this.d.a)) {
return;
}
if (!TextUtils.isEmpty(this.e)) {
fileDownloadConnection.a("If-Match", this.e);
}
this.d.a(fileDownloadConnection);
}
}