This commit is contained in:
kunfei
2022-10-26 10:50:08 +08:00
parent 5b31d6181c
commit 2834586b22
10 changed files with 55 additions and 32 deletions
@@ -352,19 +352,7 @@ class ReadBookActivity : BaseReadBookActivity(),
}
}
R.id.menu_download -> showDownloadDialog()
R.id.menu_add_bookmark -> {
val book = ReadBook.book
val page = ReadBook.curTextChapter?.getPage(ReadBook.durPageIndex)
if (book != null && page != null) {
val bookmark = book.createBookMark().apply {
chapterIndex = ReadBook.durChapterIndex
chapterPos = ReadBook.durChapterPos
chapterName = page.title
bookText = page.text.trim()
}
showDialogFragment(BookmarkDialog(bookmark))
}
}
R.id.menu_add_bookmark -> addBookmark()
R.id.menu_edit_content -> showDialogFragment(ContentEditDialog())
R.id.menu_update_toc -> ReadBook.book?.let {
if (it.isEpub) {
@@ -372,12 +360,7 @@ class ReadBookActivity : BaseReadBookActivity(),
}
loadChapterList(it)
}
R.id.menu_enable_replace -> ReadBook.book?.let {
it.setUseReplaceRule(!it.getUseReplaceRule())
ReadBook.saveRead()
menu?.findItem(R.id.menu_enable_replace)?.isChecked = it.getUseReplaceRule()
viewModel.replaceRuleChanged()
}
R.id.menu_enable_replace -> changeReplaceRuleState()
R.id.menu_re_segment -> ReadBook.book?.let {
it.setReSegment(!it.getReSegment())
menu?.findItem(R.id.menu_re_segment)?.isChecked = it.getReSegment()
@@ -1247,6 +1230,29 @@ class ReadBookActivity : BaseReadBookActivity(),
}
}
override fun addBookmark() {
val book = ReadBook.book
val page = ReadBook.curTextChapter?.getPage(ReadBook.durPageIndex)
if (book != null && page != null) {
val bookmark = book.createBookMark().apply {
chapterIndex = ReadBook.durChapterIndex
chapterPos = ReadBook.durChapterPos
chapterName = page.title
bookText = page.text.trim()
}
showDialogFragment(BookmarkDialog(bookmark))
}
}
override fun changeReplaceRuleState() {
ReadBook.book?.let {
it.setUseReplaceRule(!it.getUseReplaceRule())
ReadBook.saveRead()
menu?.findItem(R.id.menu_enable_replace)?.isChecked = it.getUseReplaceRule()
viewModel.replaceRuleChanged()
}
}
private fun startBackupJob() {
backupJob?.cancel()
backupJob = launch {
@@ -22,19 +22,20 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
class ClickActionConfigDialog : BaseDialogFragment(R.layout.dialog_click_action_config) {
private val binding by viewBinding(DialogClickActionConfigBinding::bind)
private val actions by lazy {
linkedMapOf<Int, String>().apply {
this[-1] = getString(R.string.non_action)
this[0] = getString(R.string.menu)
this[1] = getString(R.string.next_page)
this[2] = getString(R.string.prev_page)
this[3] = getString(R.string.next_chapter)
this[4] = getString(R.string.previous_chapter)
this[5] = getString(R.string.read_aloud_prev_paragraph)
this[6] = getString(R.string.read_aloud_next_paragraph)
this[7] = getString(R.string.bookmark_add)
this[8] = getString(R.string.edit_content)
this[9] = getString(R.string.replace_rule)
}
linkedMapOf(
Pair(-1, getString(R.string.non_action)),
Pair(0, getString(R.string.menu)),
Pair(1, getString(R.string.next_page)),
Pair(2, getString(R.string.prev_page)),
Pair(3, getString(R.string.next_chapter)),
Pair(4, getString(R.string.previous_chapter)),
Pair(5, getString(R.string.read_aloud_prev_paragraph)),
Pair(6, getString(R.string.read_aloud_next_paragraph)),
Pair(7, getString(R.string.bookmark_add)),
Pair(8, getString(R.string.edit_content)),
Pair(9, getString(R.string.replace_state_change)),
Pair(10, getString(R.string.chapter_list))
)
}
override fun onStart() {
@@ -18,6 +18,7 @@ import io.legado.app.help.config.ReadBookConfig
import io.legado.app.lib.theme.accentColor
import io.legado.app.model.ReadAloud
import io.legado.app.model.ReadBook
import io.legado.app.ui.book.read.ContentEditDialog
import io.legado.app.ui.book.read.page.api.DataSource
import io.legado.app.ui.book.read.page.delegate.*
import io.legado.app.ui.book.read.page.entities.PageDirection
@@ -29,6 +30,7 @@ import io.legado.app.ui.book.read.page.provider.TextPageFactory
import io.legado.app.utils.activity
import io.legado.app.utils.invisible
import io.legado.app.utils.screenshot
import io.legado.app.utils.showDialogFragment
import java.text.BreakIterator
import java.util.*
import kotlin.math.abs
@@ -418,6 +420,10 @@ class ReadView(context: Context, attrs: AttributeSet) :
4 -> ReadBook.moveToPrevChapter(upContent = true, toLast = false)
5 -> ReadAloud.prevParagraph(context)
6 -> ReadAloud.nextParagraph(context)
7 -> callBack.addBookmark()
8 -> activity?.showDialogFragment(ContentEditDialog())
9 -> callBack.changeReplaceRuleState()
10 -> callBack.openChapterList()
}
}
@@ -645,5 +651,8 @@ class ReadView(context: Context, attrs: AttributeSet) :
fun screenOffTimerStart()
fun showTextActionMenu()
fun autoPageStop()
fun openChapterList()
fun addBookmark()
fun changeReplaceRuleState()
}
}
@@ -1051,4 +1051,5 @@
<string name="copy_rule">拷贝规则</string>
<string name="paste_rule">粘贴规则</string>
<string name="groups_or_source">多分组/书源</string>
<string name="replace_state_change">替换(启用/禁用)</string>
</resources>
@@ -1054,4 +1054,5 @@
<string name="copy_rule">拷贝规则</string>
<string name="paste_rule">粘贴规则</string>
<string name="groups_or_source">多分组/书源</string>
<string name="replace_state_change">替换(启用/禁用)</string>
</resources>
@@ -1054,4 +1054,5 @@
<string name="copy_rule">拷贝规则</string>
<string name="paste_rule">粘贴规则</string>
<string name="groups_or_source">多分组/书源</string>
<string name="replace_state_change">替换(启用/禁用)</string>
</resources>
@@ -1051,4 +1051,5 @@
<string name="copy_rule">拷贝规则</string>
<string name="paste_rule">粘贴规则</string>
<string name="groups_or_source">多分组/书源</string>
<string name="replace_state_change">替换(启用/禁用)</string>
</resources>
@@ -1053,4 +1053,5 @@
<string name="copy_rule">拷贝规则</string>
<string name="paste_rule">粘贴规则</string>
<string name="groups_or_source">多分组/书源</string>
<string name="replace_state_change">替换(启用/禁用)</string>
</resources>
+1
View File
@@ -1053,4 +1053,5 @@
<string name="copy_rule">拷贝规则</string>
<string name="paste_rule">粘贴规则</string>
<string name="groups_or_source">多分组/书源</string>
<string name="replace_state_change">替换(启用/禁用)</string>
</resources>
+1
View File
@@ -1054,4 +1054,5 @@
<string name="copy_rule">拷贝规则</string>
<string name="paste_rule">粘贴规则</string>
<string name="groups_or_source">多分组/书源</string>
<string name="replace_state_change">替换(启用/禁用)</string>
</resources>