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 2e57ae7cc..1c264f431 100644 --- a/app/src/main/java/io/legado/app/model/ReadManga.kt +++ b/app/src/main/java/io/legado/app/model/ReadManga.kt @@ -296,7 +296,8 @@ object ReadManga : CoroutineScope by MainScope() { mChapterPagePos = durChapterPagePos.plus(1), mChapterNextPagePos = durChapterPagePos.plus(1), mImageUrl = src, - mDurChapterPos = index.plus(1) + mDurChapterPos = index.plus(1), + mChapterName = chapterTitle ) }.toList().apply { this.forEach { diff --git a/app/src/main/java/io/legado/app/model/recyclerView/MangaContent.kt b/app/src/main/java/io/legado/app/model/recyclerView/MangaContent.kt index 4fdbccbc1..5feab19dd 100644 --- a/app/src/main/java/io/legado/app/model/recyclerView/MangaContent.kt +++ b/app/src/main/java/io/legado/app/model/recyclerView/MangaContent.kt @@ -7,5 +7,6 @@ data class MangaContent( var mChapterNextPagePos: Int = 0,//下一章 val mImageUrl: String = "",//当前URL var mDurChapterPos: Int = 0,//当前章节位置 - var mDurChapterCount: Int = 0//当前章节内容总数 + var mDurChapterCount: Int = 0,//当前章节内容总数 + var mChapterName:String="",//章节名称 ) \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/manga/MangaViewModel.kt b/app/src/main/java/io/legado/app/ui/book/manga/MangaViewModel.kt index f86b15953..7d5b6d255 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/MangaViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/MangaViewModel.kt @@ -233,6 +233,15 @@ class MangaViewModel(application: Application) : BaseViewModel(application) { } } + fun removeFromBookshelf(success: (() -> Unit)?) { + val book = ReadManga.book + Coroutine.async { + book?.delete() + }.onSuccess { + success?.invoke() + } + } + override fun onCleared() { super.onCleared() changeSourceCoroutine?.cancel() 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 5a4c23487..32bbb58ad 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 @@ -1,6 +1,7 @@ package io.legado.app.ui.book.manga import android.annotation.SuppressLint +import android.app.Activity import android.content.Intent import android.os.Build import android.os.Bundle @@ -26,6 +27,7 @@ import com.bumptech.glide.util.FixedPreloadSizeProvider import io.legado.app.BuildConfig import io.legado.app.R import io.legado.app.base.VMBaseActivity +import io.legado.app.constant.BookType import io.legado.app.constant.EventBus import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookChapter @@ -34,6 +36,7 @@ import io.legado.app.data.entities.BookSource import io.legado.app.databinding.ActivityMangaBinding import io.legado.app.databinding.ViewLoadMoreBinding import io.legado.app.help.book.isImage +import io.legado.app.help.book.removeType import io.legado.app.help.config.AppConfig import io.legado.app.help.storage.Backup import io.legado.app.lib.dialogs.alert @@ -187,7 +190,8 @@ class ReadMangaActivity : VMBaseActivity() ReadManga.durChapterPagePos.plus(1), ReadManga.durChapterPageCount, ReadManga.durChapterPos.plus(1), - ReadManga.durChapterCount + ReadManga.durChapterCount, + ReadManga.chapterTitle ) } } @@ -227,7 +231,8 @@ class ReadMangaActivity : VMBaseActivity() content.mChapterPagePos, content.mChapterPageCount, content.mDurChapterPos, - content.mDurChapterCount + content.mDurChapterCount, + content.mChapterName ) } } catch (e: Exception) { @@ -283,7 +288,8 @@ class ReadMangaActivity : VMBaseActivity() ReadManga.durChapterPagePos.plus(1), ReadManga.durChapterPageCount, ReadManga.durChapterPos.plus(1), - ReadManga.durChapterCount + ReadManga.durChapterCount, + ReadManga.chapterTitle ) } @@ -309,7 +315,11 @@ class ReadMangaActivity : VMBaseActivity() } private fun upInfoBar( - chapterPagePos: Int, chapterPageCount: Int, chapterPos: Int, chapterCount: Int, + chapterPagePos: Int, + chapterPageCount: Int, + chapterPos: Int, + chapterCount: Int, + chapterName: String ) { mMangaFooterConfig.run { mLabelBuilder.clear() @@ -334,6 +344,11 @@ class ReadMangaActivity : VMBaseActivity() mLabelBuilder.append(getString(R.string.manga_check_progress)) } mLabelBuilder.append("${chapterPagePos.div(chapterPageCount).times(100)}%") + .append(" ") + } + + if (!hideChapterName) { + mLabelBuilder.append(chapterName) } } binding.infobar.update( @@ -658,4 +673,27 @@ class ReadMangaActivity : VMBaseActivity() callback.invoke(it) } } + + override fun finish() { + val book = ReadManga.book ?: return super.finish() + + if (ReadManga.inBookshelf) { + return super.finish() + } + + if (!AppConfig.showAddToShelfAlert) { + viewModel.removeFromBookshelf { super.finish() } + } else { + alert(title = getString(R.string.add_to_bookshelf)) { + setMessage(getString(R.string.check_add_bookshelf, book.name)) + okButton { + ReadManga.book?.removeType(BookType.notShelf) + ReadManga.book?.save() + ReadManga.inBookshelf = true + setResult(Activity.RESULT_OK) + } + noButton { viewModel.removeFromBookshelf { super.finish() } } + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterConfig.kt b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterConfig.kt index 4a126e097..eef7771e2 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterConfig.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterConfig.kt @@ -12,5 +12,6 @@ data class MangaFooterConfig( var hideProgressRatioLabel: Boolean = false, var hideProgressRatio: Boolean = false, var footerOrientation: Int = ReaderInfoBarView.ALIGN_LEFT,//默认靠左 - var hideFooter: Boolean = false + var hideFooter: Boolean = false, + var hideChapterName:Boolean=false, ) \ No newline at end of file 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 404eef370..348161b98 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 @@ -69,6 +69,13 @@ class MangaFooterSettingDialog : BaseDialogFragment(R.layout.dialog_manga_footer postEvent(EventBus.UP_MANGA_CONFIG, config) } } + binding.cbChapterName.run { + isChecked = config.hideChapterName + setOnCheckedChangeListener { _, isChecked -> + config.hideChapterName = isChecked + postEvent(EventBus.UP_MANGA_CONFIG, config) + } + } binding.rgFooterOrientation.check(if (config.footerOrientation == ReaderInfoBarView.ALIGN_CENTER) R.id.rb_center else R.id.rb_left) binding.rgFooterOrientation.setOnCheckedChangeListener { _, checkedId -> when (checkedId) { 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 2b70e5ab9..30726c561 100644 --- a/app/src/main/res/layout/dialog_manga_footer_setting.xml +++ b/app/src/main/res/layout/dialog_manga_footer_setting.xml @@ -39,6 +39,14 @@ android:layout_marginStart="10dp" android:gravity="center" android:text="@string/manga_check_chapter" /> + + 《章节和文案》隐藏 《章节.》文案 章节 + 章节名称 《页数和文案》隐藏 《页数.》文案 页数 diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 8e6e154a2..ef8c1bae8 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1198,6 +1198,7 @@ 《章节和文案》隐藏 《章节.》文案 章节 + 章节名称 《页数和文案》隐藏 《页数.》文案 页数 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 7f42d4599..d02efb63f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1198,6 +1198,7 @@ 《章节和文案》隐藏 《章节.》文案 章节 + 章节名称 《页数和文案》隐藏 《页数.》文案 页数 diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 9ac6521aa..e50e90094 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1194,6 +1194,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 881d5d258..b3188369a 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1195,6 +1195,7 @@ 《章节和文案》隐藏 《章节.》文案 章节 + 章节名称 《页数和文案》隐藏 《页数.》文案 页数 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 8635c5bd3..bc49997d4 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1197,6 +1197,7 @@ 《章节和文案》隐藏 《章节.》文案 章节 + 章节名称 《页数和文案》隐藏 《页数.》文案 页数 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index bba54b2ca..e6ca78afa 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1197,6 +1197,7 @@ 《章节和文案》隐藏 《章节.》文案 章节 + 章节名称 《页数和文案》隐藏 《页数.》文案 页数 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a2765e415..77dfc743a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1198,6 +1198,7 @@ 《章节和文案》隐藏 《章节.》文案 章节 + 章节名称 《页数和文案》隐藏 《页数.》文案 页数