@@ -296,7 +296,8 @@ object ReadManga : CoroutineScope by MainScope() {
|
|||||||
mChapterPagePos = durChapterPagePos.plus(1),
|
mChapterPagePos = durChapterPagePos.plus(1),
|
||||||
mChapterNextPagePos = durChapterPagePos.plus(1),
|
mChapterNextPagePos = durChapterPagePos.plus(1),
|
||||||
mImageUrl = src,
|
mImageUrl = src,
|
||||||
mDurChapterPos = index.plus(1)
|
mDurChapterPos = index.plus(1),
|
||||||
|
mChapterName = chapterTitle
|
||||||
)
|
)
|
||||||
}.toList().apply {
|
}.toList().apply {
|
||||||
this.forEach {
|
this.forEach {
|
||||||
|
|||||||
@@ -7,5 +7,6 @@ data class MangaContent(
|
|||||||
var mChapterNextPagePos: Int = 0,//下一章
|
var mChapterNextPagePos: Int = 0,//下一章
|
||||||
val mImageUrl: String = "",//当前URL
|
val mImageUrl: String = "",//当前URL
|
||||||
var mDurChapterPos: Int = 0,//当前章节位置
|
var mDurChapterPos: Int = 0,//当前章节位置
|
||||||
var mDurChapterCount: Int = 0//当前章节内容总数
|
var mDurChapterCount: Int = 0,//当前章节内容总数
|
||||||
|
var mChapterName:String="",//章节名称
|
||||||
)
|
)
|
||||||
@@ -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() {
|
override fun onCleared() {
|
||||||
super.onCleared()
|
super.onCleared()
|
||||||
changeSourceCoroutine?.cancel()
|
changeSourceCoroutine?.cancel()
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package io.legado.app.ui.book.manga
|
package io.legado.app.ui.book.manga
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.app.Activity
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -26,6 +27,7 @@ import com.bumptech.glide.util.FixedPreloadSizeProvider
|
|||||||
import io.legado.app.BuildConfig
|
import io.legado.app.BuildConfig
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.base.VMBaseActivity
|
import io.legado.app.base.VMBaseActivity
|
||||||
|
import io.legado.app.constant.BookType
|
||||||
import io.legado.app.constant.EventBus
|
import io.legado.app.constant.EventBus
|
||||||
import io.legado.app.data.entities.Book
|
import io.legado.app.data.entities.Book
|
||||||
import io.legado.app.data.entities.BookChapter
|
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.ActivityMangaBinding
|
||||||
import io.legado.app.databinding.ViewLoadMoreBinding
|
import io.legado.app.databinding.ViewLoadMoreBinding
|
||||||
import io.legado.app.help.book.isImage
|
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.config.AppConfig
|
||||||
import io.legado.app.help.storage.Backup
|
import io.legado.app.help.storage.Backup
|
||||||
import io.legado.app.lib.dialogs.alert
|
import io.legado.app.lib.dialogs.alert
|
||||||
@@ -187,7 +190,8 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
|
|||||||
ReadManga.durChapterPagePos.plus(1),
|
ReadManga.durChapterPagePos.plus(1),
|
||||||
ReadManga.durChapterPageCount,
|
ReadManga.durChapterPageCount,
|
||||||
ReadManga.durChapterPos.plus(1),
|
ReadManga.durChapterPos.plus(1),
|
||||||
ReadManga.durChapterCount
|
ReadManga.durChapterCount,
|
||||||
|
ReadManga.chapterTitle
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -227,7 +231,8 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
|
|||||||
content.mChapterPagePos,
|
content.mChapterPagePos,
|
||||||
content.mChapterPageCount,
|
content.mChapterPageCount,
|
||||||
content.mDurChapterPos,
|
content.mDurChapterPos,
|
||||||
content.mDurChapterCount
|
content.mDurChapterCount,
|
||||||
|
content.mChapterName
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
@@ -283,7 +288,8 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
|
|||||||
ReadManga.durChapterPagePos.plus(1),
|
ReadManga.durChapterPagePos.plus(1),
|
||||||
ReadManga.durChapterPageCount,
|
ReadManga.durChapterPageCount,
|
||||||
ReadManga.durChapterPos.plus(1),
|
ReadManga.durChapterPos.plus(1),
|
||||||
ReadManga.durChapterCount
|
ReadManga.durChapterCount,
|
||||||
|
ReadManga.chapterTitle
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,7 +315,11 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun upInfoBar(
|
private fun upInfoBar(
|
||||||
chapterPagePos: Int, chapterPageCount: Int, chapterPos: Int, chapterCount: Int,
|
chapterPagePos: Int,
|
||||||
|
chapterPageCount: Int,
|
||||||
|
chapterPos: Int,
|
||||||
|
chapterCount: Int,
|
||||||
|
chapterName: String
|
||||||
) {
|
) {
|
||||||
mMangaFooterConfig.run {
|
mMangaFooterConfig.run {
|
||||||
mLabelBuilder.clear()
|
mLabelBuilder.clear()
|
||||||
@@ -334,6 +344,11 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
|
|||||||
mLabelBuilder.append(getString(R.string.manga_check_progress))
|
mLabelBuilder.append(getString(R.string.manga_check_progress))
|
||||||
}
|
}
|
||||||
mLabelBuilder.append("${chapterPagePos.div(chapterPageCount).times(100)}%")
|
mLabelBuilder.append("${chapterPagePos.div(chapterPageCount).times(100)}%")
|
||||||
|
.append(" ")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hideChapterName) {
|
||||||
|
mLabelBuilder.append(chapterName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.infobar.update(
|
binding.infobar.update(
|
||||||
@@ -658,4 +673,27 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
|
|||||||
callback.invoke(it)
|
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() } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -12,5 +12,6 @@ data class MangaFooterConfig(
|
|||||||
var hideProgressRatioLabel: Boolean = false,
|
var hideProgressRatioLabel: Boolean = false,
|
||||||
var hideProgressRatio: Boolean = false,
|
var hideProgressRatio: Boolean = false,
|
||||||
var footerOrientation: Int = ReaderInfoBarView.ALIGN_LEFT,//默认靠左
|
var footerOrientation: Int = ReaderInfoBarView.ALIGN_LEFT,//默认靠左
|
||||||
var hideFooter: Boolean = false
|
var hideFooter: Boolean = false,
|
||||||
|
var hideChapterName:Boolean=false,
|
||||||
)
|
)
|
||||||
@@ -69,6 +69,13 @@ class MangaFooterSettingDialog : BaseDialogFragment(R.layout.dialog_manga_footer
|
|||||||
postEvent(EventBus.UP_MANGA_CONFIG, config)
|
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.check(if (config.footerOrientation == ReaderInfoBarView.ALIGN_CENTER) R.id.rb_center else R.id.rb_left)
|
||||||
binding.rgFooterOrientation.setOnCheckedChangeListener { _, checkedId ->
|
binding.rgFooterOrientation.setOnCheckedChangeListener { _, checkedId ->
|
||||||
when (checkedId) {
|
when (checkedId) {
|
||||||
|
|||||||
@@ -39,6 +39,14 @@
|
|||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/manga_check_chapter" />
|
android:text="@string/manga_check_chapter" />
|
||||||
|
|
||||||
|
<io.legado.app.lib.theme.view.ThemeCheckBox
|
||||||
|
android:id="@+id/cb_chapter_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/manga_check_chapter_name" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|||||||
@@ -1195,6 +1195,7 @@
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
@@ -1198,6 +1198,7 @@
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
@@ -1198,6 +1198,7 @@
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
@@ -1194,6 +1194,7 @@ Còn </string>
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
@@ -1195,6 +1195,7 @@
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
@@ -1197,6 +1197,7 @@
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
@@ -1197,6 +1197,7 @@
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
@@ -1198,6 +1198,7 @@
|
|||||||
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
<string name="manga_header_chapter">《章节和文案》隐藏</string>
|
||||||
<string name="manga_check_chapter_label">《章节.》文案</string>
|
<string name="manga_check_chapter_label">《章节.》文案</string>
|
||||||
<string name="manga_check_chapter">章节</string>
|
<string name="manga_check_chapter">章节</string>
|
||||||
|
<string name="manga_check_chapter_name">章节名称</string>
|
||||||
<string name="manga_header_page">《页数和文案》隐藏</string>
|
<string name="manga_header_page">《页数和文案》隐藏</string>
|
||||||
<string name="manga_check_page_label">《页数.》文案</string>
|
<string name="manga_check_page_label">《页数.》文案</string>
|
||||||
<string name="manga_check_page_number">页数</string>
|
<string name="manga_check_page_number">页数</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user