From 4c024c5faaeb1f236f6d8fb896feac23e2e703c2 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 18 Jan 2023 12:24:10 +0800 Subject: [PATCH] Fixup! Use FileChannel transferFrom --- .../hippo/ehviewer/spider/SpiderQueen.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java index 34d96ef1b..cdf7f28d8 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java @@ -1285,18 +1285,19 @@ public final class SpiderQueen implements Runnable { long receivedSize = 0; OutputStream os = osPipe.open(); if (os instanceof FileOutputStream fileOutputStream) { - while (!mStoped) { - // Is 40k a good size ? - long bytesRead = fileOutputStream.getChannel().transferFrom(responseBody.source(), receivedSize, 40960); - if (bytesRead == 0) { - response.close(); - break; + try (var channel = fileOutputStream.getChannel(); var source = responseBody.source(); response) { + while (!mStoped) { + // Is 40k a good size ? + long bytesRead = channel.transferFrom(source, receivedSize, 40960); + if (bytesRead == 0) { + break; + } + receivedSize += bytesRead; + if (contentLength > 0) { + mPagePercentMap.put(index, (float) receivedSize / contentLength); + } + notifyPageDownload(index, contentLength, receivedSize, (int) bytesRead); } - receivedSize += bytesRead; - if (contentLength > 0) { - mPagePercentMap.put(index, (float) receivedSize / contentLength); - } - notifyPageDownload(index, contentLength, receivedSize, (int) bytesRead); } } else { final byte[] data = new byte[1024 * 4];