From 032563d7a4f916582b276061c3fa9d38e1b9907c Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 14 Feb 2023 14:05:58 +0800 Subject: [PATCH] Should never update state by request --- .../hippo/ehviewer/gallery/EhPageLoader.java | 18 ++---------- .../hippo/ehviewer/spider/SpiderQueen.java | 28 ++++--------------- 2 files changed, 8 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/EhPageLoader.java b/app/src/main/java/com/hippo/ehviewer/gallery/EhPageLoader.java index 51b8ce448..bc891d874 100644 --- a/app/src/main/java/com/hippo/ehviewer/gallery/EhPageLoader.java +++ b/app/src/main/java/com/hippo/ehviewer/gallery/EhPageLoader.java @@ -124,28 +124,14 @@ public class EhPageLoader extends PageLoader2 implements SpiderQueen.OnSpiderLis @Override protected void onRequest(int index) { if (mSpiderQueen != null) { - Object object = mSpiderQueen.request(index); - if (object instanceof Float) { - notifyPagePercent(index, (Float) object); - } else if (object instanceof String error) { - notifyPageFailed(index, error); - } else if (object == null) { - notifyPageWait(index); - } + mSpiderQueen.request(index); } } @Override protected void onForceRequest(int index) { if (mSpiderQueen != null) { - Object object = mSpiderQueen.forceRequest(index); - if (object instanceof Float) { - notifyPagePercent(index, (Float) object); - } else if (object instanceof String error) { - notifyPageFailed(index, error); - } else if (object == null) { - notifyPageWait(index); - } + mSpiderQueen.forceRequest(index); } } 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 2e8fdc918..34e228243 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java @@ -356,12 +356,12 @@ public final class SpiderQueen implements Runnable { } } - public Object forceRequest(int index) { - return request(index, true); + public void forceRequest(int index) { + request(index, true); } - public Object request(int index) { - return request(index, false); + public void request(int index) { + request(index, false); } private int getPageState(int index) { @@ -390,14 +390,9 @@ public final class SpiderQueen implements Runnable { mWorkerScope.updateRAList(pages); } - /** - * @return String for error
- * Float for download percent
- * null for wait - */ - private Object request(int index, boolean force) { + private void request(int index, boolean force) { if (mQueenThread == null) { - return null; + return; } // Get page state @@ -407,20 +402,9 @@ public final class SpiderQueen implements Runnable { if ((force && (state == STATE_FINISHED || state == STATE_FAILED)) || (state == STATE_FAILED)) { // Update state to none at once updatePageState(index, STATE_NONE); - state = STATE_NONE; } mWorkerScope.launch(index, force); - - Object result; - - switch (state) { - case STATE_NONE, STATE_FINISHED -> result = null; - case STATE_DOWNLOADING -> result = mPagePercentMap.get(index); - default -> throw new IllegalStateException("Unexpected value: " + state); - } - - return result; } public boolean save(int index, @NonNull UniFile file) {