Implement #612
This commit is contained in:
1 parent
80fcda149b
commit
57d4967f2a
4 files changed
+36
No files matched your search
@@ -41,6 +41,7 @@ import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Stack;
|
||||
@@ -187,6 +188,11 @@ public class ArchivePageLoader extends PageLoader2 {
|
||||
return dst;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void preloadPages(@NonNull List<Integer> pages) {
|
||||
|
||||
}
|
||||
|
||||
private class ArchiveHostTask implements Runnable {
|
||||
public final Thread[] archiveThreads = new Thread[]{
|
||||
new Thread(new ArchiveTask()),
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.hippo.image.Image;
|
||||
import com.hippo.unifile.UniFile;
|
||||
import com.hippo.yorozuya.SimpleHandler;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import eu.kanade.tachiyomi.ui.reader.loader.PageLoader;
|
||||
@@ -207,6 +208,13 @@ public class EhPageLoader extends PageLoader2 implements SpiderQueen.OnSpiderLis
|
||||
notifyPageFailed(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void preloadPages(@NonNull List<Integer> pages) {
|
||||
if (mSpiderQueen != null) {
|
||||
mSpiderQueen.preloadPages(pages);
|
||||
}
|
||||
}
|
||||
|
||||
private static class ReleaseTask implements Runnable {
|
||||
|
||||
private SpiderQueen mSpiderQueen;
|
||||
|
||||
@@ -460,6 +460,19 @@ public final class SpiderQueen implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
public void preloadPages(@NonNull List<Integer> pages) {
|
||||
if (mQueenThread == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
synchronized (mRequestPageQueue) {
|
||||
pages.removeAll(mRequestPageQueue);
|
||||
pages.removeAll(mRequestPageQueue2);
|
||||
pages.removeAll(mDecodeRequestQueue);
|
||||
mRequestPageQueue2.addAll(pages);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String for error<br>
|
||||
* Float for download percent<br>
|
||||
|
||||
@@ -17,6 +17,8 @@ abstract class PageLoader {
|
||||
(0 until size()).map { ReaderPage(it) }
|
||||
}
|
||||
|
||||
private val mPreloads = MathUtils.clamp(com.hippo.ehviewer.Settings.getPreloadImage(), 0, 100)
|
||||
|
||||
var state = MutableStateFlow(STATE_WAIT)
|
||||
|
||||
abstract val error: String
|
||||
@@ -41,12 +43,19 @@ abstract class PageLoader {
|
||||
notifyPageSucceed(index, image)
|
||||
else
|
||||
onRequest(index)
|
||||
|
||||
// val pagesAbsent = (index until (mPreloads + index).coerceAtMost(size())).toMutableList().removeAll(mImageCache.snapshot().keys)
|
||||
// Should we refresh our LruCache ?
|
||||
val pagesAbsent = (index until (mPreloads + index).coerceAtMost(size())).mapNotNull { it.takeIf { mImageCache[it] == null } }
|
||||
preloadPages(pagesAbsent)
|
||||
}
|
||||
|
||||
fun retryPage(page: ReaderPage) {
|
||||
onForceRequest(mPages.indexOf(page))
|
||||
}
|
||||
|
||||
protected abstract fun preloadPages(pages: List<Int>)
|
||||
|
||||
protected abstract fun onRequest(index: Int)
|
||||
|
||||
protected abstract fun onForceRequest(index: Int)
|
||||
|
||||
Reference in new issue
Block a user