package com.baidu.cloud.videocache; import android.text.TextUtils; import com.baidu.cloud.videocache.headers.HeaderInjector; import com.baidu.cloud.videocache.sourcestorage.SourceInfoStorage; import com.ubt.jimu.unity.bluetooth.UnityActivity; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; import java.net.HttpURLConnection; import java.net.URL; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /* loaded from: classes.dex */ public class n implements Source { private static final Logger f = LoggerFactory.getLogger("HttpUrlSource"); protected final SourceInfoStorage a; private final HeaderInjector b; protected aa c; private HttpURLConnection d; private InputStream e; public n(n nVar) { this.c = nVar.c; this.a = nVar.a; this.b = nVar.b; } public n(String str) { this(str, com.baidu.cloud.videocache.sourcestorage.c.a()); } public n(String str, SourceInfoStorage sourceInfoStorage) { this(str, sourceInfoStorage, new com.baidu.cloud.videocache.headers.a()); } public n(String str, SourceInfoStorage sourceInfoStorage, HeaderInjector headerInjector) { t.a(sourceInfoStorage); this.a = sourceInfoStorage; t.a(headerInjector); this.b = headerInjector; aa aaVar = sourceInfoStorage.get(str); this.c = aaVar == null ? new aa(str, -2147483648L, z.a(str)) : aaVar; } private long a(HttpURLConnection httpURLConnection) { String headerField = httpURLConnection.getHeaderField("Content-Length"); if (headerField == null) { return -1L; } return Long.parseLong(headerField); } private long a(HttpURLConnection httpURLConnection, long j, int i) { long a = a(httpURLConnection); return i == 200 ? a : i == 206 ? a + j : this.c.b; } private HttpURLConnection a(long j, int i) { String str; HttpURLConnection httpURLConnection; boolean z; String str2 = this.c.a; int i2 = 0; do { Logger logger = f; StringBuilder sb = new StringBuilder(); sb.append("Open connection "); if (j > 0) { str = " with offset " + j; } else { str = ""; } sb.append(str); sb.append(" to "); sb.append(str2); logger.debug(sb.toString()); httpURLConnection = (HttpURLConnection) new URL(str2).openConnection(); a(httpURLConnection, str2); if (j > 0) { httpURLConnection.setRequestProperty("Range", "bytes=" + j + "-"); } if (i > 0) { httpURLConnection.setConnectTimeout(i); httpURLConnection.setReadTimeout(i); } int responseCode = httpURLConnection.getResponseCode(); z = responseCode == 301 || responseCode == 302 || responseCode == 303; if (z) { str2 = httpURLConnection.getHeaderField("Location"); i2++; httpURLConnection.disconnect(); } if (i2 > 5) { throw new x("Too many redirects: " + i2); } } while (z); return httpURLConnection; } private void a(HttpURLConnection httpURLConnection, String str) { for (Map.Entry entry : this.b.a(str).entrySet()) { httpURLConnection.setRequestProperty((String) entry.getKey(), (String) entry.getValue()); } } /* JADX WARN: Code restructure failed: missing block: B:10:0x008e, code lost: return; */ /* JADX WARN: Code restructure failed: missing block: B:17:0x0089, code lost: if (r0 == null) goto L25; */ /* JADX WARN: Code restructure failed: missing block: B:7:0x0060, code lost: if (r0 != null) goto L19; */ /* JADX WARN: Code restructure failed: missing block: B:8:0x008b, code lost: r0.disconnect(); r0 = r0; */ /* JADX WARN: Multi-variable type inference failed */ /* JADX WARN: Removed duplicated region for block: B:22:0x0094 */ /* JADX WARN: Type inference failed for: r0v1 */ /* JADX WARN: Type inference failed for: r0v12 */ /* JADX WARN: Type inference failed for: r0v13 */ /* JADX WARN: Type inference failed for: r0v14 */ /* JADX WARN: Type inference failed for: r0v2 */ /* JADX WARN: Type inference failed for: r0v4, types: [java.net.HttpURLConnection] */ /* JADX WARN: Type inference failed for: r0v5 */ /* JADX WARN: Type inference failed for: r0v7 */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct code enable 'Show inconsistent code' option in preferences */ private void c() { /* r7 = this; org.slf4j.Logger r0 = com.baidu.cloud.videocache.n.f java.lang.StringBuilder r1 = new java.lang.StringBuilder r1.() java.lang.String r2 = "Read content info from " r1.append(r2) com.baidu.cloud.videocache.aa r2 = r7.c java.lang.String r2 = r2.a r1.append(r2) java.lang.String r1 = r1.toString() r0.debug(r1) r0 = 0 r2 = 10000(0x2710, float:1.4013E-41) r3 = 0 java.net.HttpURLConnection r0 = r7.a(r0, r2) // Catch: java.lang.Throwable -> L67 java.io.IOException -> L6a long r1 = r7.a(r0) // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 java.lang.String r4 = r0.getContentType() // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 java.io.InputStream r3 = r0.getInputStream() // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 com.baidu.cloud.videocache.aa r5 = new com.baidu.cloud.videocache.aa // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 com.baidu.cloud.videocache.aa r6 = r7.c // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 java.lang.String r6 = r6.a // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 r5.(r6, r1, r4) // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 r7.c = r5 // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 com.baidu.cloud.videocache.sourcestorage.SourceInfoStorage r1 = r7.a // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 com.baidu.cloud.videocache.aa r2 = r7.c // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 java.lang.String r2 = r2.a // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 com.baidu.cloud.videocache.aa r4 = r7.c // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 r1.a(r2, r4) // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 org.slf4j.Logger r1 = com.baidu.cloud.videocache.n.f // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 java.lang.StringBuilder r2 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 r2.() // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 java.lang.String r4 = "Source info fetched: " r2.append(r4) // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 com.baidu.cloud.videocache.aa r4 = r7.c // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 r2.append(r4) // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 java.lang.String r2 = r2.toString() // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 r1.debug(r2) // Catch: java.lang.Throwable -> L63 java.io.IOException -> L65 com.baidu.cloud.videocache.z.a(r3) if (r0 == 0) goto L8e goto L8b L63: r1 = move-exception goto L8f L65: r1 = move-exception goto L6c L67: r1 = move-exception r0 = r3 goto L8f L6a: r1 = move-exception r0 = r3 L6c: org.slf4j.Logger r2 = com.baidu.cloud.videocache.n.f // Catch: java.lang.Throwable -> L63 java.lang.StringBuilder r4 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L63 r4.() // Catch: java.lang.Throwable -> L63 java.lang.String r5 = "Error fetching info from " r4.append(r5) // Catch: java.lang.Throwable -> L63 com.baidu.cloud.videocache.aa r5 = r7.c // Catch: java.lang.Throwable -> L63 java.lang.String r5 = r5.a // Catch: java.lang.Throwable -> L63 r4.append(r5) // Catch: java.lang.Throwable -> L63 java.lang.String r4 = r4.toString() // Catch: java.lang.Throwable -> L63 r2.error(r4, r1) // Catch: java.lang.Throwable -> L63 com.baidu.cloud.videocache.z.a(r3) if (r0 == 0) goto L8e L8b: r0.disconnect() L8e: return L8f: com.baidu.cloud.videocache.z.a(r3) if (r0 == 0) goto L97 r0.disconnect() L97: throw r1 */ throw new UnsupportedOperationException("Method not decompiled: com.baidu.cloud.videocache.n.c():void"); } public synchronized String a() { if (TextUtils.isEmpty(this.c.c)) { c(); } return this.c.c; } @Override // com.baidu.cloud.videocache.Source public void a(long j) { try { this.d = a(j, -1); String contentType = this.d.getContentType(); this.e = new BufferedInputStream(this.d.getInputStream(), UnityActivity.BLOCKLY_TYPE_NONE); this.c = new aa(this.c.a, a(this.d, j, this.d.getResponseCode()), contentType); this.a.a(this.c.a, this.c); } catch (IOException e) { throw new x("Error opening connection for " + this.c.a + " with offset " + j, e); } } public String b() { return this.c.a; } @Override // com.baidu.cloud.videocache.Source public void close() { HttpURLConnection httpURLConnection = this.d; if (httpURLConnection != null) { try { httpURLConnection.disconnect(); } catch (ArrayIndexOutOfBoundsException e) { f.error("Error closing connection correctly. Should happen only on Android L. If anybody know how to fix it, please visithttps://github.com/danikula/AndroidVideoCache/issues/88. Until good solution is not know, just ignore this issue :(", e); } catch (IllegalArgumentException e2) { e = e2; throw new RuntimeException("Wait... but why? WTF!? Really shouldn't happen any more after fixing https://github.com/danikula/AndroidVideoCache/issues/43. If you read it on your device log, please, notify me danikula@gmail.com or create issue here https://github.com/danikula/AndroidVideoCache/issues.", e); } catch (NullPointerException e3) { e = e3; throw new RuntimeException("Wait... but why? WTF!? Really shouldn't happen any more after fixing https://github.com/danikula/AndroidVideoCache/issues/43. If you read it on your device log, please, notify me danikula@gmail.com or create issue here https://github.com/danikula/AndroidVideoCache/issues.", e); } } } @Override // com.baidu.cloud.videocache.Source public synchronized long length() { if (this.c.b == -2147483648L) { c(); } return this.c.b; } @Override // com.baidu.cloud.videocache.Source public int read(byte[] bArr) { InputStream inputStream = this.e; if (inputStream == null) { throw new x("Error reading data from " + this.c.a + ": connection is absent!"); } try { return inputStream.read(bArr, 0, bArr.length); } catch (InterruptedIOException e) { throw new p("Reading source " + this.c.a + " is interrupted", e); } catch (IOException e2) { throw new x("Error reading data from " + this.c.a, e2); } } public String toString() { return "HttpUrlSource{sourceInfo='" + this.c + "}"; } }