From 186bd11463efe745e8f14766a3aa64b0e5f740d4 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Fri, 13 Oct 2017 03:25:56 +0800 Subject: [PATCH] Reconnect until we got content length --- .../topjohnwu/magisk/asyncs/ProcessRepoZip.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java index eee0e2981..324f04156 100644 --- a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java +++ b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java @@ -35,7 +35,7 @@ public class ProcessRepoZip extends ParallelTask { private boolean mInstall; private String mLink; private File mFile; - private int progress = 0, total; + private int progress = 0, total = -1; private static final int UPDATE_DL_PROG = 0; private static final int SHOW_PROCESSING = 1; @@ -105,9 +105,17 @@ public class ProcessRepoZip extends ParallelTask { try { // Request zip from Internet - HttpURLConnection conn = WebService.request(mLink, null); - if (conn == null) return false; - total = conn.getContentLength(); + HttpURLConnection conn; + do { + conn = WebService.request(mLink, null); + if (conn == null) return null; + total = conn.getContentLength(); + if (total < 0) + conn.disconnect(); + else + break; + } while (true); + InputStream in = new ProgressUpdateInputStream(conn.getInputStream()); // Temp files