From b1b3b62f1ae9ea93adc0b110f04b207a737025af Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Sun, 16 Mar 2025 12:12:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/model/ReadManga.kt | 14 ++++++++------ .../legado/app/ui/book/manga/ReadMangaActivity.kt | 8 +++++--- .../{MangaContentData.kt => MangaContent.kt} | 2 +- .../java/io/legado/app/ui/book/read/MangaMenu.kt | 6 ++++-- 4 files changed, 18 insertions(+), 12 deletions(-) rename app/src/main/java/io/legado/app/ui/book/manga/entities/{MangaContentData.kt => MangaContent.kt} (83%) 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 89352909b..7289a43e7 100644 --- a/app/src/main/java/io/legado/app/model/ReadManga.kt +++ b/app/src/main/java/io/legado/app/model/ReadManga.kt @@ -21,7 +21,7 @@ import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.globalExecutor import io.legado.app.model.webBook.WebBook import io.legado.app.ui.book.manga.entities.MangaChapter -import io.legado.app.ui.book.manga.entities.MangaContentData +import io.legado.app.ui.book.manga.entities.MangaContent import io.legado.app.ui.book.manga.entities.MangaPage import io.legado.app.ui.book.manga.entities.ReaderLoading import io.legado.app.utils.mapIndexed @@ -48,7 +48,6 @@ object ReadManga : CoroutineScope by MainScope() { val executor = globalExecutor var durChapterIndex = 0 //章节位置 var chapterSize = 0//总章节 - var durChapterImageCount = 0 var durChapterPos = 0 var prevMangaChapter: MangaChapter? = null var curMangaChapter: MangaChapter? = null @@ -65,7 +64,7 @@ object ReadManga : CoroutineScope by MainScope() { val downloadScope = CoroutineScope(SupervisorJob() + IO) val preDownloadSemaphore = Semaphore(2) var rateLimiter = ConcurrentRateLimiter(null) - val mangaContents get() = buildContentList() + val mangaContents get() = buildMangaContent() val hasNextChapter get() = durChapterIndex < simulatedChapterSize - 1 fun resetData(book: Book) { @@ -216,7 +215,6 @@ object ReadManga : CoroutineScope by MainScope() { mCallback?.loadFail("正文没有图片") return } - durChapterImageCount = mangaChapter.imageCount curMangaChapter = mangaChapter mCallback?.upContent() } @@ -240,20 +238,24 @@ object ReadManga : CoroutineScope by MainScope() { } } - private fun buildContentList(): MangaContentData { + private fun buildMangaContent(): MangaContent { val list = arrayListOf() var pos = durChapterPos + 1 + var curFinish = false + var nextFinish = false prevMangaChapter?.let { pos += it.contents.size list.addAll(it.contents) } curMangaChapter?.let { + curFinish = true list.addAll(it.contents) } nextMangaChapter?.let { + nextFinish = true list.addAll(it.contents) } - return MangaContentData(pos, list, curMangaChapter != null, nextMangaChapter != null) + return MangaContent(pos, list, curFinish, nextFinish) } /** 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 c7935b5b2..f615a8847 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 @@ -268,13 +268,15 @@ class ReadMangaActivity : VMBaseActivity -1) { - binding.mRecyclerManga.scrollToPosition(pos) + mLayoutManager.scrollToPositionWithOffset(pos, 0) upInfoBar(mAdapter.getItem(pos)) } } diff --git a/app/src/main/java/io/legado/app/ui/book/manga/entities/MangaContentData.kt b/app/src/main/java/io/legado/app/ui/book/manga/entities/MangaContent.kt similarity index 83% rename from app/src/main/java/io/legado/app/ui/book/manga/entities/MangaContentData.kt rename to app/src/main/java/io/legado/app/ui/book/manga/entities/MangaContent.kt index 3f49be706..9558274d1 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/entities/MangaContentData.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/entities/MangaContent.kt @@ -1,6 +1,6 @@ package io.legado.app.ui.book.manga.entities -data class MangaContentData( +data class MangaContent( val pos: Int, val contents: List, val curFinish: Boolean, diff --git a/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt b/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt index 87592e094..fb24bf001 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt @@ -243,8 +243,10 @@ class MangaMenu @JvmOverloads constructor( } seekReadPage.setOnSeekBarChangeListener(object : SeekBarChangeListener { - override fun onStopTrackingTouch(seekBar: SeekBar) { - callBack.skipToPage(seekBar.progress) + override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { + if (fromUser) { + callBack.skipToPage(seekBar.progress) + } } }) }