From 3cd7cc23ba59880e5037d5a9e45485f0f7097c29 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Thu, 20 Feb 2025 18:26:24 +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 --- .../java/io/legado/app/constant/EventBus.kt | 1 + .../java/io/legado/app/model/ReadManga.kt | 16 +-- .../{MangeContent.kt => MangaContent.kt} | 2 +- .../app/ui/book/manga/ReadMangaActivity.kt | 39 +++-- .../manga/config/MangaFooterSettingDialog.kt | 34 +++-- .../app/ui/book/manga/rv/MangaAdapter.kt | 16 +-- .../layout/dialog_manga_footer_setting.xml | 136 ++++++++---------- app/src/main/res/values-es-rES/strings.xml | 2 +- app/src/main/res/values-ja-rJP/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-vi/strings.xml | 2 +- app/src/main/res/values-zh-rHK/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values-zh/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/xml/pref_config_other.xml | 2 +- 16 files changed, 122 insertions(+), 140 deletions(-) rename app/src/main/java/io/legado/app/model/recyclerView/{MangeContent.kt => MangaContent.kt} (93%) diff --git a/app/src/main/java/io/legado/app/constant/EventBus.kt b/app/src/main/java/io/legado/app/constant/EventBus.kt index 68eb07db8..050bf6996 100644 --- a/app/src/main/java/io/legado/app/constant/EventBus.kt +++ b/app/src/main/java/io/legado/app/constant/EventBus.kt @@ -31,4 +31,5 @@ object EventBus { const val UP_SEEK_BAR = "upSeekBar" const val READ_ALOUD_PLAY = "readAloudPlay" const val EXPORT_BOOK = "exportBook" + const val UP_MANGA_CONFIG = "upMangaConfig" } \ No newline at end of file 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 3fec82e92..2e57ae7cc 100644 --- a/app/src/main/java/io/legado/app/model/ReadManga.kt +++ b/app/src/main/java/io/legado/app/model/ReadManga.kt @@ -19,7 +19,7 @@ import io.legado.app.help.book.update import io.legado.app.help.config.AppConfig import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.globalExecutor -import io.legado.app.model.recyclerView.MangeContent +import io.legado.app.model.recyclerView.MangaContent import io.legado.app.model.recyclerView.ReaderLoading import io.legado.app.model.webBook.WebBook import io.legado.app.utils.NetworkUtils @@ -71,7 +71,7 @@ object ReadManga : CoroutineScope by MainScope() { fun saveRead(pageChanged: Boolean = false) { executor.execute { - val book = ReadManga.book ?: return@execute + val book = book ?: return@execute book.lastCheckCount = 0 book.durChapterTime = System.currentTimeMillis() val chapterChanged = book.durChapterIndex != durChapterPagePos @@ -194,8 +194,8 @@ object ReadManga : CoroutineScope by MainScope() { scope: CoroutineScope, chapter: BookChapter, ) { - val book = ReadManga.book ?: return removeLoading(chapter.index) - val bookSource = ReadManga.bookSource + val book = book ?: return removeLoading(chapter.index) + val bookSource = bookSource if (bookSource != null) { getContent(bookSource, scope, chapter, book) } @@ -211,7 +211,7 @@ object ReadManga : CoroutineScope by MainScope() { ) { if (addLoading(index)) { Coroutine.async { - val book = ReadManga.book!! + val book = book!! appDb.bookChapterDao.getChapter(book.bookUrl, index)?.let { chapter -> getContent( downloadScope, @@ -291,7 +291,7 @@ object ReadManga : CoroutineScope by MainScope() { emit(mSrc) } }.distinctUntilChanged().mapIndexed { index, src -> - MangeContent( + MangaContent( mChapterPageCount = durChapterPageCount, mChapterPagePos = durChapterPagePos.plus(1), mChapterNextPagePos = durChapterPagePos.plus(1), @@ -521,7 +521,7 @@ object ReadManga : CoroutineScope by MainScope() { }) } } ?: removeDownloadLoading(index) - } catch (e: Exception) { + } catch (_: Exception) { removeLoading(index) } } @@ -612,7 +612,7 @@ object ReadManga : CoroutineScope by MainScope() { loadContent(durChapterPagePos) } else { Coroutine.async { - val book = ReadManga.book!! + val book = book!! appDb.bookChapterDao.getChapter(book.bookUrl, durChapterPagePos) ?.let { chapter -> getContent( diff --git a/app/src/main/java/io/legado/app/model/recyclerView/MangeContent.kt b/app/src/main/java/io/legado/app/model/recyclerView/MangaContent.kt similarity index 93% rename from app/src/main/java/io/legado/app/model/recyclerView/MangeContent.kt rename to app/src/main/java/io/legado/app/model/recyclerView/MangaContent.kt index 32234b498..4fdbccbc1 100644 --- a/app/src/main/java/io/legado/app/model/recyclerView/MangeContent.kt +++ b/app/src/main/java/io/legado/app/model/recyclerView/MangaContent.kt @@ -1,7 +1,7 @@ package io.legado.app.model.recyclerView -data class MangeContent( +data class MangaContent( var mChapterPagePos: Int = 0,//总章节位置 var mChapterPageCount: Int,//总章节数量 var mChapterNextPagePos: Int = 0,//下一章 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 54b3cbcc3..5a4c23487 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 @@ -39,7 +39,7 @@ import io.legado.app.help.storage.Backup import io.legado.app.lib.dialogs.alert import io.legado.app.model.ReadManga import io.legado.app.model.ReadManga.mFirstLoading -import io.legado.app.model.recyclerView.MangeContent +import io.legado.app.model.recyclerView.MangaContent import io.legado.app.model.recyclerView.ReaderLoading import io.legado.app.receiver.NetworkChangedListener import io.legado.app.ui.book.changesource.ChangeBookSourceDialog @@ -50,7 +50,6 @@ import io.legado.app.ui.book.manga.rv.MangaAdapter import io.legado.app.ui.book.read.MangaMenu import io.legado.app.ui.book.read.ReadBookActivity.Companion.RESULT_DELETED import io.legado.app.ui.book.toc.TocActivityResult -import io.legado.app.ui.widget.ReaderInfoBarView import io.legado.app.ui.widget.number.NumberPickerDialog import io.legado.app.ui.widget.recycler.LoadMoreView import io.legado.app.utils.GSON @@ -108,7 +107,7 @@ class ReadMangaActivity : VMBaseActivity() } private var mMangaAutoPageSpeed = mInitMangaAutoPageSpeed - private var mMangaFooterConfig: MangaFooterConfig? = null + private lateinit var mMangaFooterConfig: MangaFooterConfig private val mLabelBuilder by lazy { StringBuilder() } private val autoScrollHandler = Handler(Looper.getMainLooper()) @@ -179,11 +178,11 @@ class ReadMangaActivity : VMBaseActivity() } } loadMoreView.gone() - mMangaFooterConfig = GSON.fromJsonObject(AppConfig.mangaFooterConfig).getOrNull() - ?: MangaFooterConfig() - observeEvent(EventBus.UP_CONFIG) { + mMangaFooterConfig = + GSON.fromJsonObject(AppConfig.mangaFooterConfig).getOrNull() + ?: MangaFooterConfig() + observeEvent(EventBus.UP_MANGA_CONFIG) { mMangaFooterConfig = it - AppConfig.mangaFooterConfig = GSON.toJson(it) upInfoBar( ReadManga.durChapterPagePos.plus(1), ReadManga.durChapterPageCount, @@ -222,7 +221,7 @@ class ReadMangaActivity : VMBaseActivity() ) { try { val content = mAdapter.getCurrentList()[position] - if (content is MangeContent) { + if (content is MangaContent) { ReadManga.durChapterPos = content.mDurChapterPos.minus(1) upInfoBar( content.mChapterPagePos, @@ -312,33 +311,29 @@ class ReadMangaActivity : VMBaseActivity() private fun upInfoBar( chapterPagePos: Int, chapterPageCount: Int, chapterPos: Int, chapterCount: Int, ) { - mMangaFooterConfig?.run { + mMangaFooterConfig.run { mLabelBuilder.clear() - binding.infobar.isGone = this.hideFooter - binding.infobar.textInfoAlignment =this.footerOrientation - if (!this.hidePageNumber) { - if (!this.hidePageNumberLabel) { + binding.infobar.isGone = hideFooter + binding.infobar.textInfoAlignment = footerOrientation + if (!hidePageNumber) { + if (!hidePageNumberLabel) { mLabelBuilder.append(getString(R.string.manga_check_page_number)) } mLabelBuilder.append("${chapterPos}/${chapterCount}").append(" ") } - if (!this.hideChapter) { - if (!this.hideChapterLabel) { + if (!hideChapter) { + if (!hideChapterLabel) { mLabelBuilder.append(getString(R.string.manga_check_chapter)) } mLabelBuilder.append("${chapterPagePos}/${chapterPageCount}").append(" ") } - if (!this.hideProgressRatio) { - if (!this.hideProgressRatioLabel) { + if (!hideProgressRatio) { + if (!hideProgressRatioLabel) { mLabelBuilder.append(getString(R.string.manga_check_progress)) } - mLabelBuilder.append( - "${ - chapterPagePos.div(chapterPageCount).times(100) - }%" - ) + mLabelBuilder.append("${chapterPagePos.div(chapterPageCount).times(100)}%") } } binding.infobar.update( diff --git a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt index a3311f9b3..a3b75377d 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt @@ -1,5 +1,6 @@ package io.legado.app.ui.book.manga.config +import android.content.DialogInterface import android.os.Bundle import android.view.View import android.view.ViewGroup @@ -26,76 +27,79 @@ class MangaFooterSettingDialog : BaseDialogFragment(R.layout.dialog_manga_footer } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.cbChapterLabel.run { isChecked = config.hideChapterLabel setOnCheckedChangeListener { _, isChecked -> config.hideChapterLabel = isChecked - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } } binding.cbChapter.run { isChecked = config.hideChapter setOnCheckedChangeListener { _, isChecked -> config.hideChapter = isChecked - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } } binding.cbPageNumberLabel.run { isChecked = config.hidePageNumberLabel setOnCheckedChangeListener { _, isChecked -> config.hidePageNumberLabel = isChecked - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } } binding.cbPageNumber.run { isChecked = config.hidePageNumber setOnCheckedChangeListener { _, isChecked -> config.hidePageNumber = isChecked - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } } binding.cbProgressRatioLabel.run { isChecked = config.hideProgressRatioLabel setOnCheckedChangeListener { _, isChecked -> config.hideProgressRatioLabel = isChecked - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } } binding.cbProgressRatio.run { isChecked = config.hideProgressRatio setOnCheckedChangeListener { _, isChecked -> config.hideProgressRatio = isChecked - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } } - binding.rgFooterOrientation.check(if (config.footerOrientation == ReaderInfoBarView.ALIGN_CENTER) R.id.rbCenter else R.id.rbLeft) + binding.rgFooterOrientation.check(if (config.footerOrientation == ReaderInfoBarView.ALIGN_CENTER) R.id.rb_center else R.id.rb_left) binding.rgFooterOrientation.setOnCheckedChangeListener { _, checkedId -> when (checkedId) { - R.id.rbLeft -> { + R.id.rb_left -> { config.footerOrientation = ReaderInfoBarView.ALIGN_LEFT } - R.id.rbCenter -> { + R.id.rb_center -> { config.footerOrientation = ReaderInfoBarView.ALIGN_CENTER } } - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } - binding.rgFooter.check(if (config.hideFooter) R.id.rbDisable else R.id.rbEnable) + binding.rgFooter.check(if (config.hideFooter) R.id.rb_disable else R.id.rb_enable) binding.rgFooter.setOnCheckedChangeListener { _, checkedId -> when (checkedId) { - R.id.rbEnable -> { + R.id.rb_enable -> { config.hideFooter = false } - R.id.rbDisable -> { + R.id.rb_disable -> { config.hideFooter = true } } - postEvent(EventBus.UP_CONFIG, config) + postEvent(EventBus.UP_MANGA_CONFIG, config) } } + override fun onDismiss(dialog: DialogInterface) { + super.onDismiss(dialog) + AppConfig.mangaFooterConfig = GSON.toJson(config) + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/manga/rv/MangaAdapter.kt b/app/src/main/java/io/legado/app/ui/book/manga/rv/MangaAdapter.kt index 80f0a4f17..19d3afee4 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/rv/MangaAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/rv/MangaAdapter.kt @@ -23,7 +23,7 @@ import io.legado.app.help.glide.progress.ProgressManager import io.legado.app.model.BookCover import io.legado.app.model.ReadManga import io.legado.app.model.recyclerView.MangaVH -import io.legado.app.model.recyclerView.MangeContent +import io.legado.app.model.recyclerView.MangaContent import io.legado.app.model.recyclerView.ReaderLoading import io.legado.app.utils.getCompatDrawable import java.util.Collections @@ -41,7 +41,7 @@ class MangaAdapter(private val context: Context) : override fun areItemsTheSame(oldItem: Any, newItem: Any): Boolean { return if (oldItem is ReaderLoading && newItem is ReaderLoading) { newItem.mMessage == oldItem.mMessage - } else if (oldItem is MangeContent && newItem is MangeContent) { + } else if (oldItem is MangaContent && newItem is MangaContent) { oldItem.mImageUrl == newItem.mImageUrl } else false } @@ -49,7 +49,7 @@ class MangaAdapter(private val context: Context) : override fun areContentsTheSame(oldItem: Any, newItem: Any): Boolean { return if (oldItem is ReaderLoading && newItem is ReaderLoading) { oldItem == newItem - } else if (oldItem is MangeContent && newItem is MangeContent) { + } else if (oldItem is MangaContent && newItem is MangaContent) { oldItem == newItem } else false } @@ -88,13 +88,13 @@ class MangaAdapter(private val context: Context) : ) binding.retry.setOnClickListener { val item = mDiffer.currentList[layoutPosition] - if (item is MangeContent) { + if (item is MangaContent) { loadImageWithRetry(item.mImageUrl) } } } - fun onBind(item: MangeContent) { + fun onBind(item: MangaContent) { loadImageWithRetry(item.mImageUrl) } } @@ -142,7 +142,7 @@ class MangaAdapter(private val context: Context) : override fun getItemViewType(position: Int): Int { return when { isFooter(position) -> TYPE_FOOTER_VIEW + position - getActualItemCount() - getItem(position) is MangeContent -> CONTENT_VIEW + getItem(position) is MangaContent -> CONTENT_VIEW getItem(position) is ReaderLoading -> LOADING_VIEW else -> error("Unknown view type!") } @@ -169,7 +169,7 @@ class MangaAdapter(private val context: Context) : override fun onBindViewHolder(vh: RecyclerView.ViewHolder, position: Int) { when (vh) { - is PageViewHolder -> vh.onBind(getItem(position) as MangeContent) + is PageViewHolder -> vh.onBind(getItem(position) as MangaContent) is PageMoreViewHolder -> vh.onBind(getItem(position) as ReaderLoading) } } @@ -209,7 +209,7 @@ class MangaAdapter(private val context: Context) : } override fun getPreloadRequestBuilder(item: Any): RequestBuilder<*>? { - if (item is MangeContent) { + if (item is MangaContent) { return BookCover.loadManga( context, item.mImageUrl, diff --git a/app/src/main/res/layout/dialog_manga_footer_setting.xml b/app/src/main/res/layout/dialog_manga_footer_setting.xml index 77c9e7112..919b248a0 100644 --- a/app/src/main/res/layout/dialog_manga_footer_setting.xml +++ b/app/src/main/res/layout/dialog_manga_footer_setting.xml @@ -2,181 +2,163 @@ + android:orientation="vertical" + android:padding="16dp"> + + + android:layout_marginStart="16dp" + android:layout_marginTop="8dp"> - + android:text="@string/manga_check_chapter_label" /> - + android:text="@string/manga_check_chapter" /> + android:layout_marginStart="16dp" + android:layout_marginTop="8dp"> - + android:text="@string/manga_check_page_label" /> - + android:text="@string/manga_check_page_number" /> + android:layout_marginStart="16dp" + android:layout_marginTop="8dp"> - + android:text="@string/manga_check_progress_label" /> - + android:text="@string/manga_check_progress" /> - + android:text="@string/manga_radio_left" /> - + android:text="@string/manga_radio_center" /> - + android:text="@string/manga_radio_disable" /> - + android:text="@string/manga_radio_enable" /> diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 43ec94ad2..8bee5da2c 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1182,7 +1182,7 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 3e3471cde..0103685df 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1185,7 +1185,7 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index dfa20b753..58e65c9d5 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1185,7 +1185,7 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 345218f90..bee0e41f4 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1181,7 +1181,7 @@ Còn 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index beb2dc009..6e1da16c3 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1182,7 +1182,7 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5c9d29138..2682a1dcf 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1184,7 +1184,7 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index d787b9342..e356384dc 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1184,7 +1184,7 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc1ef3380..99ce071a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1185,7 +1185,7 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 - 漫画浏览 + 漫画浏览 禁用漫画缩放 禁用点击翻页 开启自动翻页 diff --git a/app/src/main/res/xml/pref_config_other.xml b/app/src/main/res/xml/pref_config_other.xml index 6608300d8..2b27f8c97 100644 --- a/app/src/main/res/xml/pref_config_other.xml +++ b/app/src/main/res/xml/pref_config_other.xml @@ -171,7 +171,7 @@