jimu-decompiled/sources/com/baidu/cloud/videocache/f.java
2025-05-13 19:24:51 +02:00

103 lines
3.3 KiB
Java

package com.baidu.cloud.videocache;
import android.text.TextUtils;
import com.ubt.jimu.unity.bluetooth.UnityActivity;
import java.io.BufferedOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Locale;
/* loaded from: classes.dex */
class f extends u {
private final n j;
protected final com.baidu.cloud.videocache.file.a k;
private CacheListener l;
public f(n nVar, com.baidu.cloud.videocache.file.a aVar) {
super(nVar, aVar);
this.k = aVar;
this.j = nVar;
}
protected String a(String str, Object... objArr) {
return String.format(Locale.US, str, objArr);
}
@Override // com.baidu.cloud.videocache.u
protected void a(int i) {
CacheListener cacheListener = this.l;
if (cacheListener != null) {
cacheListener.a(this.k.b, this.j.b(), i);
}
}
public void a(CacheListener cacheListener) {
this.l = cacheListener;
}
public void a(b bVar, Socket socket) {
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(socket.getOutputStream());
bufferedOutputStream.write(b(bVar).getBytes("UTF-8"));
long j = bVar.b;
if (a(bVar)) {
a(bufferedOutputStream, j);
} else {
b(bufferedOutputStream, j);
}
}
protected void a(OutputStream outputStream, long j) {
byte[] bArr = new byte[UnityActivity.BLOCKLY_TYPE_NONE];
while (true) {
int a = a(bArr, j, bArr.length);
if (a == -1) {
outputStream.flush();
return;
} else {
outputStream.write(bArr, 0, a);
j += a;
}
}
}
protected boolean a(b bVar) {
long length = this.j.length();
return (((length > 0L ? 1 : (length == 0L ? 0 : -1)) > 0) && bVar.c && ((float) bVar.b) > ((float) this.k.available()) + (((float) length) * 0.2f)) ? false : true;
}
protected String b(b bVar) {
String a = this.j.a();
boolean z = !TextUtils.isEmpty(a);
long available = this.k.b() ? this.k.available() : this.j.length();
boolean z2 = available >= 0;
long j = bVar.c ? available - bVar.b : available;
boolean z3 = z2 && bVar.c;
StringBuilder sb = new StringBuilder();
sb.append(bVar.c ? "HTTP/1.1 206 PARTIAL CONTENT\n" : "HTTP/1.1 200 OK\n");
sb.append("Accept-Ranges: bytes\n");
sb.append(z2 ? a("Content-Length: %d\n", Long.valueOf(j)) : "");
sb.append(z3 ? a("Content-Range: bytes %d-%d/%d\n", Long.valueOf(bVar.b), Long.valueOf(available - 1), Long.valueOf(available)) : "");
sb.append(z ? a("Content-Type: %s\n", a) : "");
sb.append("\n");
return sb.toString();
}
protected void b(OutputStream outputStream, long j) {
n nVar = new n(this.j);
try {
nVar.a((int) j);
byte[] bArr = new byte[UnityActivity.BLOCKLY_TYPE_NONE];
while (true) {
int read = nVar.read(bArr);
if (read == -1) {
outputStream.flush();
return;
}
outputStream.write(bArr, 0, read);
}
} finally {
nVar.close();
}
}
}