From 241d9daae9f4a178830bea21bfcc9377eaded792 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Mon, 26 Dec 2022 14:26:56 +0800 Subject: [PATCH] Get download dir in download mode only Resolve? #381 --- app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.java | 7 +++++-- .../main/java/com/hippo/ehviewer/spider/SpiderQueen.java | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.java b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.java index d17205abe..db86c10d7 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.java +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.java @@ -50,13 +50,12 @@ public final class SpiderDen { @Nullable private static SimpleDiskCache sCache; @Nullable - private final UniFile mDownloadDir; + private UniFile mDownloadDir; private final long mGid; private volatile int mMode = SpiderQueen.MODE_READ; public SpiderDen(GalleryInfo galleryInfo) { mGid = galleryInfo.gid; - mDownloadDir = getGalleryDownloadDir(galleryInfo); } public static void initialize(Context context) { @@ -156,6 +155,10 @@ public final class SpiderDen { return mDownloadDir != null && mDownloadDir.isDirectory() ? mDownloadDir : null; } + public void setDownloadDir(UniFile dir) { + mDownloadDir = dir; + } + private boolean containInCache(int index) { if (sCache == null) { return false; 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 c98b1f4dd..5a5cd9f3d 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java @@ -320,6 +320,9 @@ public final class SpiderQueen implements Runnable { mode = MODE_READ; } + if (mode == MODE_DOWNLOAD && mSpiderDen.getDownloadDir() == null) { + mSpiderDen.setDownloadDir(SpiderDen.getGalleryDownloadDir(mGalleryInfo)); + } mSpiderDen.setMode(mode); // Update download page