From bc3339482665c40acd4b8194a3dc7da8e9912f6b Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Thu, 17 Apr 2025 15:04:18 +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 --- .../io/legado/app/help/source/SourceHelp.kt | 10 +++++++ .../java/io/legado/app/model/ReadManga.kt | 6 ++--- .../app/ui/book/manga/ReadMangaActivity.kt | 27 +++++-------------- .../ui/book/manga/entities/ReaderLoading.kt | 1 + .../book/manga/recyclerview/MangaAdapter.kt | 8 ++++++ .../manga/recyclerview/MangaLayoutManager.kt | 17 ++++++++++++ 6 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/io/legado/app/ui/book/manga/recyclerview/MangaLayoutManager.kt diff --git a/app/src/main/java/io/legado/app/help/source/SourceHelp.kt b/app/src/main/java/io/legado/app/help/source/SourceHelp.kt index 4919be1f0..2b2437d65 100644 --- a/app/src/main/java/io/legado/app/help/source/SourceHelp.kt +++ b/app/src/main/java/io/legado/app/help/source/SourceHelp.kt @@ -6,6 +6,9 @@ import io.legado.app.data.entities.BaseSource import io.legado.app.data.entities.BookSource import io.legado.app.data.entities.RssSource import io.legado.app.help.coroutine.Coroutine +import io.legado.app.model.AudioPlay +import io.legado.app.model.ReadBook +import io.legado.app.model.ReadManga import io.legado.app.utils.EncoderUtils import io.legado.app.utils.NetworkUtils import io.legado.app.utils.splitNotBlank @@ -27,6 +30,13 @@ object SourceHelp { fun getSource(key: String?): BaseSource? { key ?: return null + if (ReadBook.bookSource?.bookSourceUrl == key) { + return ReadBook.bookSource + } else if (AudioPlay.bookSource?.bookSourceUrl == key) { + return AudioPlay.bookSource + } else if (ReadManga.bookSource?.bookSourceUrl == key) { + return ReadManga.bookSource + } return appDb.bookSourceDao.getBookSource(key) ?: appDb.rssSourceDao.getByKey(key) } 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 5e7044084..7aabf8058 100644 --- a/app/src/main/java/io/legado/app/model/ReadManga.kt +++ b/app/src/main/java/io/legado/app/model/ReadManga.kt @@ -220,7 +220,7 @@ object ReadManga : CoroutineScope by MainScope() { } -1, 1 -> { - if (content == null || content.isEmpty()) { + if (content == null || (!chapter.isVolume && content.isEmpty())) { return } val mangaChapter = getManageChapter(chapter, content) @@ -597,14 +597,14 @@ object ReadManga : CoroutineScope by MainScope() { it.imageCount = imageCount } - if (AppConfig.hideMangaTitle) { + if (AppConfig.hideMangaTitle && imageCount > 0) { return MangaChapter(chapter, list, imageCount) } val pages = mutableListOf() if (imageCount == 0 && chapter.isVolume) { - pages.add(ReaderLoading(chapter.index, -1, chapter.title)) + pages.add(ReaderLoading(chapter.index, -1, chapter.title, true)) } else { pages.add(ReaderLoading(chapter.index, -1, "阅读 ${chapter.title}")) pages.addAll(list) 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 a4adcf7cb..1ddc9703f 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 @@ -17,8 +17,6 @@ import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.PagerSnapHelper -import androidx.recyclerview.widget.RecyclerView -import androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE import com.bumptech.glide.Glide import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader import com.bumptech.glide.request.target.Target.SIZE_ORIGINAL @@ -50,6 +48,7 @@ import io.legado.app.ui.book.manga.config.MangaFooterSettingDialog import io.legado.app.ui.book.manga.entities.BaseMangaPage import io.legado.app.ui.book.manga.entities.MangaPage import io.legado.app.ui.book.manga.recyclerview.MangaAdapter +import io.legado.app.ui.book.manga.recyclerview.MangaLayoutManager import io.legado.app.ui.book.manga.recyclerview.ScrollTimer import io.legado.app.ui.book.read.MangaMenu import io.legado.app.ui.book.read.ReadBookActivity.Companion.RESULT_DELETED @@ -82,7 +81,7 @@ class ReadMangaActivity : VMBaseActivity if (mAdapter.isNotEmpty()) { val item = mAdapter.getItem(position) - if (item is MangaPage) { + if (item is BaseMangaPage) { if (ReadManga.durChapterIndex < item.chapterIndex) { ReadManga.moveToNextChapter() } else if (ReadManga.durChapterIndex > item.chapterIndex) { @@ -215,25 +214,13 @@ class ReadMangaActivity : VMBaseActivity