package com.czhj.volley.toolbox; import android.os.SystemClock; import com.czhj.volley.Cache; import com.czhj.volley.Header; import com.czhj.volley.Network; import com.czhj.volley.NetworkResponse; import com.czhj.volley.Request; import com.czhj.volley.RetryPolicy; import com.czhj.volley.ServerError; import com.czhj.volley.VolleyError; import com.czhj.volley.VolleyLog; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.SocketTimeoutException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.TreeSet; public class FileDownloadNetwork implements Network { protected static final boolean DEBUG = VolleyLog.DEBUG; private static final int a = 3000; private static final int b = 4096; private final BaseHttpStack c; protected final ByteArrayPool mPool; public FileDownloadNetwork(BaseHttpStack baseHttpStack) { this(baseHttpStack, new ByteArrayPool(4096)); } public FileDownloadNetwork(BaseHttpStack baseHttpStack, ByteArrayPool byteArrayPool) { this.c = baseHttpStack; this.mPool = byteArrayPool; } private static List<Header> a(List<Header> list, Cache.Entry entry) { TreeSet treeSet = new TreeSet(String.CASE_INSENSITIVE_ORDER); if (!list.isEmpty()) { for (Header header : list) { treeSet.add(header.getName()); } } ArrayList arrayList = new ArrayList(list); if (entry.allResponseHeaders != null) { if (!entry.allResponseHeaders.isEmpty()) { for (Header header2 : entry.allResponseHeaders) { if (!treeSet.contains(header2.getName())) { arrayList.add(header2); } } } } else if (!entry.responseHeaders.isEmpty()) { for (Map.Entry<String, String> entry2 : entry.responseHeaders.entrySet()) { if (!treeSet.contains(entry2.getKey())) { arrayList.add(new Header(entry2.getKey(), entry2.getValue())); } } } return arrayList; } private Map<String, String> a(Cache.Entry entry) { if (entry == null) { return Collections.emptyMap(); } HashMap hashMap = new HashMap(); if (entry.etag != null) { hashMap.put("If-None-Match", entry.etag); } if (entry.lastModified > 0) { hashMap.put("If-Modified-Since", HttpHeaderParser.a(entry.lastModified)); } return hashMap; } private void a(long j, Request<?> request, byte[] bArr, int i) { if (DEBUG || j > 3000) { Object[] objArr = new Object[5]; objArr[0] = request; objArr[1] = Long.valueOf(j); objArr[2] = bArr != null ? Integer.valueOf(bArr.length) : "null"; objArr[3] = Integer.valueOf(i); objArr[4] = Integer.valueOf(request.getRetryPolicy().getCurrentRetryCount()); VolleyLog.d("HTTP response for request=<%s> [lifetime=%d], [size=%s], [rc=%d], [retryCount=%s]", objArr); } } private byte[] a(InputStream inputStream, int i) throws IOException, ServerError { PoolingByteArrayOutputStream poolingByteArrayOutputStream = new PoolingByteArrayOutputStream(this.mPool, i); if (inputStream != null) { try { byte[] buf = this.mPool.getBuf(1024); while (true) { int read = inputStream.read(buf); if (read == -1) { break; } poolingByteArrayOutputStream.write(buf, 0, read); } byte[] byteArray = poolingByteArrayOutputStream.toByteArray(); if (inputStream != null) { try { inputStream.close(); } catch (IOException unused) { VolleyLog.v("Error occurred when closing InputStream", new Object[0]); } } this.mPool.returnBuf(buf); poolingByteArrayOutputStream.close(); return byteArray; } catch (Throwable th) { if (inputStream != null) { try { inputStream.close(); } catch (IOException unused2) { VolleyLog.v("Error occurred when closing InputStream", new Object[0]); } } this.mPool.returnBuf(null); poolingByteArrayOutputStream.close(); throw th; } } else { throw new ServerError(); } } public static void attemptRetryOnException(String str, Request<?> request, VolleyError volleyError) throws VolleyError { RetryPolicy retryPolicy = request.getRetryPolicy(); int timeoutMs = request.getTimeoutMs(); try { retryPolicy.retry(volleyError); request.addMarker(String.format("%s-retry [RetryCount %s] [timeout=%s]", str, Integer.valueOf(retryPolicy.getCurrentRetryCount()), Integer.valueOf(timeoutMs))); } catch (VolleyError e) { request.addMarker(String.format("%s-timeout-giveup [RetryCount %s] [timeout=%s]", str, Integer.valueOf(retryPolicy.getCurrentRetryCount()), Integer.valueOf(timeoutMs))); throw e; } } public static Map<String, String> convertHeaders(List<Header> list) { TreeMap treeMap = new TreeMap(String.CASE_INSENSITIVE_ORDER); for (int i = 0; i < list.size(); i++) { Header header = list.get(i); treeMap.put(header.getName(), header.getValue()); } return treeMap; } /* access modifiers changed from: protected */ public void logError(String str, String str2, long j) { VolleyLog.v("HTTP ERROR(%s) %d ms to fetch %s", str, Long.valueOf(SystemClock.elapsedRealtime() - j), str2); } /* JADX WARNING: Code restructure failed: missing block: B:15:0x007f, code lost: r0 = e; */ /* JADX WARNING: Code restructure failed: missing block: B:16:0x0080, code lost: r17 = null; r21 = r6; */ /* JADX WARNING: Code restructure failed: missing block: B:37:0x00d1, code lost: r0 = e; */ /* JADX WARNING: Code restructure failed: missing block: B:38:0x00d3, code lost: r0 = e; */ /* JADX WARNING: Code restructure failed: missing block: B:39:0x00d4, code lost: r23 = r6; */ /* JADX WARNING: Code restructure failed: missing block: B:40:0x00d6, code lost: r2 = r14; r17 = r2; */ /* JADX WARNING: Code restructure failed: missing block: B:44:0x00e3, code lost: r0 = e; */ /* JADX WARNING: Code restructure failed: missing block: B:45:0x00e4, code lost: r21 = r1; r17 = null; */ /* JADX WARNING: Code restructure failed: missing block: B:46:0x00e8, code lost: r2 = r14; */ /* JADX WARNING: Code restructure failed: missing block: B:47:0x00ea, code lost: r0 = e; */ /* JADX WARNING: Code restructure failed: missing block: B:48:0x00eb, code lost: r21 = r1; r17 = null; */ /* JADX WARNING: Code restructure failed: missing block: B:50:0x00f1, code lost: r1 = r2.getStatusCode(); com.czhj.volley.VolleyLog.e("%s Unexpected response code %d for %s", r0.getMessage(), java.lang.Integer.valueOf(r1), r29.getUrl()); */ /* JADX WARNING: Code restructure failed: missing block: B:51:0x010f, code lost: if (r17 != null) goto L_0x0111; */ /* JADX WARNING: Code restructure failed: missing block: B:52:0x0111, code lost: r0 = new com.czhj.volley.NetworkResponse(r1, r17, false, android.os.SystemClock.elapsedRealtime() - r9, r21); */ /* JADX WARNING: Code restructure failed: missing block: B:53:0x0125, code lost: if (r1 == 401) goto L_0x016c; */ /* JADX WARNING: Code restructure failed: missing block: B:57:0x012e, code lost: if (r1 == 301) goto L_0x0166; */ /* JADX WARNING: Code restructure failed: missing block: B:61:0x0137, code lost: if (r1 < 400) goto L_0x0144; */ /* JADX WARNING: Code restructure failed: missing block: B:65:0x0143, code lost: throw new com.czhj.volley.ServerError(r0); */ /* JADX WARNING: Code restructure failed: missing block: B:67:0x0146, code lost: if (r1 < 500) goto L_0x0160; */ /* JADX WARNING: Code restructure failed: missing block: B:71:0x0150, code lost: if (r29.shouldRetryServerErrors() != false) goto L_0x0152; */ /* JADX WARNING: Code restructure failed: missing block: B:72:0x0152, code lost: r1 = new com.czhj.volley.ServerError(r0); r0 = "server"; */ /* JADX WARNING: Code restructure failed: missing block: B:74:0x015f, code lost: throw new com.czhj.volley.ServerError(r0); */ /* JADX WARNING: Code restructure failed: missing block: B:77:0x0166, code lost: r1 = new com.czhj.volley.AuthFailureError(r0); */ /* JADX WARNING: Code restructure failed: missing block: B:78:0x016c, code lost: r1 = new com.czhj.volley.AuthFailureError(r0); */ /* JADX WARNING: Code restructure failed: missing block: B:79:0x0171, code lost: attemptRetryOnException("auth", r29, r1); */ /* JADX WARNING: Code restructure failed: missing block: B:80:0x0176, code lost: r1 = new com.czhj.volley.NetworkError(r0); r0 = com.sigmob.sdk.base.mta.PointCategory.NETWORK; */ /* JADX WARNING: Code restructure failed: missing block: B:81:0x017d, code lost: attemptRetryOnException(r0, r29, r1); */ /* JADX WARNING: Code restructure failed: missing block: B:83:0x0187, code lost: throw new com.czhj.volley.NoConnectionError(r0); */ /* JADX WARNING: Code restructure failed: missing block: B:84:0x0188, code lost: r0 = move-exception; */ /* JADX WARNING: Code restructure failed: missing block: B:86:0x01a3, code lost: throw new java.lang.RuntimeException("Bad URL " + r29.getUrl(), r0); */ /* JADX WARNING: Code restructure failed: missing block: B:87:0x01a4, code lost: attemptRetryOnException("socket", r29, new com.czhj.volley.TimeoutError()); */ /* JADX WARNING: Failed to process nested try/catch */ /* JADX WARNING: Removed duplicated region for block: B:50:0x00f1 */ /* JADX WARNING: Removed duplicated region for block: B:84:0x0188 A[ExcHandler: MalformedURLException (r0v2 'e' java.net.MalformedURLException A[CUSTOM_DECLARE]), Splitter:B:2:0x001d] */ /* JADX WARNING: Removed duplicated region for block: B:88:? A[ExcHandler: SocketTimeoutException (unused java.net.SocketTimeoutException), SYNTHETIC, Splitter:B:2:0x001d] */ /* JADX WARNING: Removed duplicated region for block: B:94:0x0182 A[SYNTHETIC] */ @Override // com.czhj.volley.Network public NetworkResponse performRequest(Request<?> request) throws VolleyError { NetworkResponse networkResponse; HttpResponse executeRequest; List<Header> headers; List<Header> list; long elapsedRealtime = SystemClock.elapsedRealtime(); while (true) { VolleyLog.d("download start %s", request.getUrl()); List<Header> emptyList = Collections.emptyList(); HttpResponse httpResponse = null; byte[] bArr = null; try { executeRequest = this.c.executeRequest(request, a(request.getCacheEntry())); int statusCode = executeRequest.getStatusCode(); VolleyLog.d("download getStatus %s StatusCode: %s", request.getUrl(), Integer.valueOf(statusCode)); headers = executeRequest.getHeaders(); if (statusCode == 304) { Cache.Entry cacheEntry = request.getCacheEntry(); if (cacheEntry == null) { return new NetworkResponse(304, (byte[]) null, true, SystemClock.elapsedRealtime() - elapsedRealtime, headers); } return new NetworkResponse(304, cacheEntry.data, true, SystemClock.elapsedRealtime() - elapsedRealtime, a(headers, cacheEntry)); } if (executeRequest.getContent() == null) { bArr = new byte[0]; } else if (request instanceof FileDownloadRequest) { bArr = ((FileDownloadRequest) request).handleRawResponse(executeRequest); } list = headers; a(SystemClock.elapsedRealtime() - elapsedRealtime, request, bArr, statusCode); if (statusCode >= 200 && statusCode <= 299) { return new NetworkResponse(statusCode, bArr, false, SystemClock.elapsedRealtime() - elapsedRealtime, list); } throw new IOException(); } catch (SocketTimeoutException unused) { } catch (MalformedURLException e) { } catch (IOException e2) { IOException e3 = e2; list = headers; byte[] bArr2 = null; httpResponse = executeRequest; List<Header> list2 = list; if (httpResponse == null) { } } } throw new ServerError(networkResponse); } }