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(); } } }