diff --git a/app/src/main/java/io/legado/app/model/webBook/BookChapterList.kt b/app/src/main/java/io/legado/app/model/webBook/BookChapterList.kt
index 2550a007c..720e0adc6 100644
--- a/app/src/main/java/io/legado/app/model/webBook/BookChapterList.kt
+++ b/app/src/main/java/io/legado/app/model/webBook/BookChapterList.kt
@@ -6,6 +6,7 @@ import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
import io.legado.app.data.entities.BookSource
import io.legado.app.data.entities.rule.TocRule
+import io.legado.app.help.ContentProcessor
import io.legado.app.model.Debug
import io.legado.app.model.NoStackTraceException
import io.legado.app.model.TocEmptyException
@@ -118,9 +119,10 @@ object BookChapterList {
list.forEachIndexed { index, bookChapter ->
bookChapter.index = index
}
- book.latestChapterTitle = list.last().title
- book.durChapterTitle =
- list.getOrNull(book.durChapterIndex)?.title ?: book.latestChapterTitle
+ val replaceRules = ContentProcessor.get(book.name, book.origin).getTitleReplaceRules()
+ book.latestChapterTitle = list.last().getDisplayTitle(replaceRules)
+ book.durChapterTitle = list.getOrElse(book.durChapterIndex) { list.last() }
+ .getDisplayTitle(replaceRules)
if (book.totalChapterNum < list.size) {
book.lastCheckCount = list.size - book.totalChapterNum
book.latestChapterTime = System.currentTimeMillis()
diff --git a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt
index 5d8e5c2de..2550c9feb 100644
--- a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt
+++ b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayViewModel.kt
@@ -10,6 +10,7 @@ import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
import io.legado.app.data.entities.BookSource
import io.legado.app.help.BookHelp
+import io.legado.app.help.ContentProcessor
import io.legado.app.model.AudioPlay
import io.legado.app.model.webBook.WebBook
import io.legado.app.utils.postEvent
@@ -120,7 +121,9 @@ class AudioPlayViewModel(application: Application) : BaseViewModel(application)
chapters,
oldTocSize
)
- book.durChapterTitle = chapters[book.durChapterIndex].title
+ book.durChapterTitle = chapters[book.durChapterIndex].getDisplayTitle(
+ ContentProcessor.get(book.name, book.origin).getTitleReplaceRules()
+ )
appDb.bookDao.update(book)
appDb.bookChapterDao.insert(*chapters.toTypedArray())
}
diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt
index 781e554a9..f469d5432 100644
--- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt
+++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt
@@ -13,6 +13,7 @@ import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
import io.legado.app.data.entities.BookSource
import io.legado.app.help.BookHelp
+import io.legado.app.help.ContentProcessor
import io.legado.app.help.coroutine.Coroutine
import io.legado.app.model.NoStackTraceException
import io.legado.app.model.ReadBook
@@ -208,7 +209,9 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
chapters,
oldTocSize
)
- book.durChapterTitle = chapters[book.durChapterIndex].title
+ book.durChapterTitle = chapters[book.durChapterIndex].getDisplayTitle(
+ ContentProcessor.get(book.name, book.origin).getTitleReplaceRules()
+ )
if (inBookshelf) {
appDb.bookDao.update(book)
appDb.bookChapterDao.insert(*chapters.toTypedArray())
diff --git a/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt
index 06862ed4a..1656b3dae 100644
--- a/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt
+++ b/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt
@@ -19,6 +19,7 @@ import io.legado.app.lib.theme.primaryColor
import io.legado.app.model.ReadBook
import io.legado.app.model.webBook.WebBook
import io.legado.app.utils.applyTint
+import io.legado.app.utils.sendToClip
import io.legado.app.utils.setLayout
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO
@@ -78,6 +79,8 @@ class ContentEditDialog : BaseDialogFragment(R.layout.dialog_content_edit) {
binding.contentView.setText(content)
ReadBook.loadContent(ReadBook.durChapterIndex, resetPageOffset = false)
}
+ R.id.menu_copy_all -> requireContext()
+ .sendToClip("${binding.toolBar.title}\n${viewModel.content}")
}
return@setOnMenuItemClickListener true
}
diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt
index 9b2ecc985..9af74ef3e 100644
--- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt
+++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt
@@ -189,7 +189,9 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
chapters,
oldBook.totalChapterNum
)
- book.durChapterTitle = chapters[book.durChapterIndex].title
+ book.durChapterTitle = chapters[book.durChapterIndex].getDisplayTitle(
+ ContentProcessor.get(book.name, book.origin).getTitleReplaceRules()
+ )
oldBook.changeTo(book)
appDb.bookChapterDao.insert(*chapters.toTypedArray())
ReadBook.resetData(book)
diff --git a/app/src/main/res/layout/dialog_content_edit.xml b/app/src/main/res/layout/dialog_content_edit.xml
index 2f1d21bd5..8061678a4 100644
--- a/app/src/main/res/layout/dialog_content_edit.xml
+++ b/app/src/main/res/layout/dialog_content_edit.xml
@@ -11,7 +11,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
- app:title="code edit"
+ app:title="edit"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" />
diff --git a/app/src/main/res/menu/content_edit.xml b/app/src/main/res/menu/content_edit.xml
index efb4b44ce..5ccd7e115 100644
--- a/app/src/main/res/menu/content_edit.xml
+++ b/app/src/main/res/menu/content_edit.xml
@@ -15,4 +15,9 @@
android:title="@string/reset"
app:showAsAction="never" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index 2e374086c..6be3c976d 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -943,5 +943,6 @@
整书换源
时间排序
开启记录
+ 拷贝所有
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 8f30e828e..bffb90efe 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -946,5 +946,6 @@
整书换源
时间排序
开启记录
+ 拷贝所有
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 790e20227..325e1220b 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -946,5 +946,6 @@
整书换源
时间排序
开启记录
+ 拷贝所有
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 29c9cf854..8decfbf09 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -943,5 +943,6 @@
整书换源
时间排序
开启记录
+ 拷贝所有
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 82d29637f..5b0a70a61 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -945,5 +945,6 @@
整书换源
时间排序
开启记录
+ 拷贝所有
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 13012c32c..93868fd11 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -945,5 +945,6 @@
整书换源
时间排序
开启记录
+ 拷贝所有
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7171000b2..4eff8223d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -946,5 +946,6 @@
整书换源
时间排序
开启记录
+ 拷贝所有