From e516220c27a7eedd3cdc4ef00b2437f29df6e263 Mon Sep 17 00:00:00 2001 From: lhjgege <1079947827@qq.com> Date: Sat, 15 Mar 2025 21:08:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AB=A0=E8=8A=82=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E6=9D=A1=20(#4826)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复当前屏幕可见图未设置滤镜 * ... * 增加章节进度条 --- .../java/io/legado/app/model/ReadManga.kt | 27 +++++++++ .../app/ui/book/manga/ReadMangaActivity.kt | 16 ++++++ .../io/legado/app/ui/book/read/MangaMenu.kt | 31 ++++++++++ app/src/main/res/layout/view_manga_menu.xml | 56 +++++++++++++++++++ 4 files changed, 130 insertions(+) diff --git a/app/src/main/java/io/legado/app/model/ReadManga.kt b/app/src/main/java/io/legado/app/model/ReadManga.kt index 60fc6dbe8..ca56f4b67 100644 --- a/app/src/main/java/io/legado/app/model/ReadManga.kt +++ b/app/src/main/java/io/legado/app/model/ReadManga.kt @@ -67,6 +67,7 @@ object ReadManga : CoroutineScope by MainScope() { var rateLimiter = ConcurrentRateLimiter(null) val mangaContents get() = buildContentList() val hasNextChapter get() = durChapterIndex < simulatedChapterSize - 1 + val mSeekParPos = mutableMapOf>() fun resetData(book: Book) { ReadManga.book = book @@ -583,6 +584,32 @@ object ReadManga : CoroutineScope by MainScope() { return MangaChapter(chapter, contentList, imageCount) } + fun recordMangaPosition(dataList: MutableList) { + Coroutine.async { + var globalPosition = 0 + val mangaList = mutableListOf() + dataList.forEach { + if (it is MangaContent) { + mangaList.add(it) + } + } + dataList.groupBy { if (it is MangaContent) it.mChapterIndex else (it as ReaderLoading).mChapterIndex } + .forEach { (chapterIndex, items) -> + val itemMap = mutableMapOf() + for (i in items.indices) { + val item = items[i] + if (item is MangaContent) { + itemMap[item.index] = globalPosition++ + } else { + globalPosition++ + } + } + mSeekParPos[chapterIndex] = itemMap + } + } + } + + interface Callback { fun upContent() fun loadFail(msg: String) diff --git a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt index 5e560a043..404bd551c 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt @@ -227,6 +227,7 @@ class ReadMangaActivity : VMBaseActivity + + + + + + + + + + + + \ No newline at end of file