优化
This commit is contained in:
@@ -1165,11 +1165,7 @@ class ReadBookActivity : BaseReadBookActivity(),
|
||||
* 替换
|
||||
*/
|
||||
override fun openReplaceRule() {
|
||||
val intent = Intent(this, ReplaceRuleActivity::class.java).apply {
|
||||
val showApplied = ReadBook.book?.getUseReplaceRule() == true
|
||||
putExtra("showApplied", showApplied)
|
||||
}
|
||||
replaceActivity.launch(intent)
|
||||
replaceActivity.launch(Intent(this, ReplaceRuleActivity::class.java))
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package io.legado.app.ui.replace
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
@@ -121,10 +122,8 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
initRecyclerView()
|
||||
initSearchView()
|
||||
initSelectActionView()
|
||||
observeReplaceRuleData()
|
||||
observeGroupData()
|
||||
viewModel.initData(intent) {
|
||||
observeReplaceRuleData()
|
||||
}
|
||||
}
|
||||
|
||||
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
|
||||
@@ -216,7 +215,6 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
val key = searchKey.substringAfter("group:")
|
||||
appDb.replaceRuleDao.flowGroupSearch("%$key%")
|
||||
}
|
||||
|
||||
else -> {
|
||||
appDb.replaceRuleDao.flowSearch("%$searchKey%")
|
||||
}
|
||||
@@ -224,7 +222,7 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
AppLog.put("替换规则管理界面更新数据出错", it)
|
||||
}.flowOn(IO).conflate().collect {
|
||||
if (dataInit) {
|
||||
setResult(RESULT_OK)
|
||||
setResult(Activity.RESULT_OK)
|
||||
}
|
||||
adapter.setItems(it, adapter.diffItemCallBack)
|
||||
dataInit = true
|
||||
@@ -247,7 +245,6 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
when (item.itemId) {
|
||||
R.id.menu_add_replace_rule ->
|
||||
editActivity.launch(ReplaceEditActivity.startIntent(this))
|
||||
|
||||
R.id.menu_group_manage -> showDialogFragment<GroupManageDialog>()
|
||||
R.id.menu_del_selection -> viewModel.delSelection(adapter.selection)
|
||||
R.id.menu_import_onLine -> showImportDialog()
|
||||
@@ -255,13 +252,11 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
mode = HandleFileContract.FILE
|
||||
allowExtensions = arrayOf("txt", "json")
|
||||
}
|
||||
|
||||
R.id.menu_import_qr -> qrCodeResult.launch()
|
||||
R.id.menu_help -> showHelp("replaceRuleHelp")
|
||||
R.id.menu_group_null -> {
|
||||
searchView.setQuery(getString(R.string.no_group), true)
|
||||
}
|
||||
|
||||
else -> if (item.groupId == R.id.replace_group) {
|
||||
searchView.setQuery("group:${item.title}", true)
|
||||
}
|
||||
@@ -348,14 +343,6 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
)
|
||||
}
|
||||
|
||||
override fun isEnabledForBook(rule: ReplaceRule): Boolean {
|
||||
return viewModel.isEnabledForBook(rule)
|
||||
}
|
||||
|
||||
override fun isAppliedForBook(rule: ReplaceRule): Boolean {
|
||||
return viewModel.isAppliedForBook(rule)
|
||||
}
|
||||
|
||||
override fun update(vararg rule: ReplaceRule) {
|
||||
setResult(RESULT_OK)
|
||||
viewModel.update(*rule)
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package io.legado.app.ui.replace
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.PopupMenu
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
@@ -19,8 +17,6 @@ import io.legado.app.lib.theme.backgroundColor
|
||||
import io.legado.app.ui.widget.recycler.DragSelectTouchHelper
|
||||
import io.legado.app.ui.widget.recycler.ItemTouchCallback
|
||||
import io.legado.app.utils.ColorUtils
|
||||
import io.legado.app.utils.invisible
|
||||
import io.legado.app.utils.visible
|
||||
|
||||
|
||||
class ReplaceRuleAdapter(context: Context, var callBack: CallBack) :
|
||||
@@ -124,7 +120,6 @@ class ReplaceRuleAdapter(context: Context, var callBack: CallBack) :
|
||||
}
|
||||
}
|
||||
}
|
||||
upShowApplied(ivApplied, item)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,23 +172,6 @@ class ReplaceRuleAdapter(context: Context, var callBack: CallBack) :
|
||||
popupMenu.show()
|
||||
}
|
||||
|
||||
|
||||
private fun upShowApplied(iv: ImageView, rule: ReplaceRule) {
|
||||
val isEnabledForBook = callBack.isEnabledForBook(rule)
|
||||
val isAppliedForBook = callBack.isAppliedForBook(rule)
|
||||
if (!isEnabledForBook && !isAppliedForBook) {
|
||||
iv.invisible()
|
||||
} else {
|
||||
iv.visible()
|
||||
}
|
||||
if (isEnabledForBook) {
|
||||
iv.setColorFilter(Color.RED)
|
||||
}
|
||||
if (isAppliedForBook) {
|
||||
iv.setColorFilter(Color.GREEN)
|
||||
}
|
||||
}
|
||||
|
||||
override fun swap(srcPosition: Int, targetPosition: Int): Boolean {
|
||||
val srcItem = getItem(srcPosition)
|
||||
val targetItem = getItem(targetPosition)
|
||||
@@ -254,7 +232,5 @@ class ReplaceRuleAdapter(context: Context, var callBack: CallBack) :
|
||||
fun toBottom(rule: ReplaceRule)
|
||||
fun upOrder()
|
||||
fun upCountView()
|
||||
fun isEnabledForBook(rule: ReplaceRule): Boolean
|
||||
fun isAppliedForBook(rule: ReplaceRule): Boolean
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
package io.legado.app.ui.replace
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Intent
|
||||
import android.text.TextUtils
|
||||
import io.legado.app.base.BaseViewModel
|
||||
import io.legado.app.data.appDb
|
||||
import io.legado.app.data.entities.ReplaceRule
|
||||
import io.legado.app.help.book.ContentProcessor
|
||||
import io.legado.app.model.ReadBook
|
||||
import io.legado.app.utils.splitNotBlank
|
||||
|
||||
/**
|
||||
@@ -16,34 +13,6 @@ import io.legado.app.utils.splitNotBlank
|
||||
*/
|
||||
class ReplaceRuleViewModel(application: Application) : BaseViewModel(application) {
|
||||
|
||||
var showApplied = false
|
||||
var enabledForBookRules = emptySet<ReplaceRule>()
|
||||
var appliedForBookRules = emptySet<ReplaceRule>()
|
||||
|
||||
fun initData(intent: Intent, block: () -> Unit) {
|
||||
execute {
|
||||
showApplied = intent.getBooleanExtra("showApplied", false)
|
||||
if (showApplied) {
|
||||
val book = ReadBook.book ?: return@execute
|
||||
val textChapter = ReadBook.curTextChapter ?: return@execute
|
||||
enabledForBookRules = ContentProcessor.get(book).getContentReplaceRules().toSet()
|
||||
textChapter.effectiveReplaceRules?.let {
|
||||
appliedForBookRules = it.toSet()
|
||||
}
|
||||
}
|
||||
}.onFinally {
|
||||
block.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
fun isEnabledForBook(rule: ReplaceRule): Boolean {
|
||||
return showApplied && enabledForBookRules.contains(rule)
|
||||
}
|
||||
|
||||
fun isAppliedForBook(rule: ReplaceRule): Boolean {
|
||||
return showApplied && appliedForBookRules.contains(rule)
|
||||
}
|
||||
|
||||
fun update(vararg rule: ReplaceRule) {
|
||||
execute {
|
||||
appDb.replaceRuleDao.update(*rule)
|
||||
|
||||
Reference in New Issue
Block a user