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) + } } }) }