翰林优商.apk(点击下载) / FileDownloadNetwork.java


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