替换顺序 #222
This commit is contained in:
@@ -210,4 +210,5 @@ object PreferKey {
|
||||
const val bookshelfRefreshingLimit = "bookshelfRefreshingLimit"
|
||||
const val systemMediaControlCompatibilityChange = "systemMediaControlCompatibilityChange"
|
||||
const val isPredictiveBackEnabled = "isPredictiveBackEnabled"
|
||||
const val replaceSortMode = "desc"
|
||||
}
|
||||
|
||||
@@ -145,9 +145,18 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
|
||||
groupMenu = menu.findItem(R.id.menu_group)?.subMenu
|
||||
upGroupMenu()
|
||||
|
||||
// 标记当前选中的排序方式
|
||||
when (viewModel.sortMode.value) {
|
||||
"asc" -> menu.findItem(R.id.sort_order_asc)?.isChecked = true
|
||||
"desc" -> menu.findItem(R.id.sort_order_desc)?.isChecked = true
|
||||
"name_asc" -> menu.findItem(R.id.sort_name_asc)?.isChecked = true
|
||||
"name_desc" -> menu.findItem(R.id.sort_name_desc)?.isChecked = true
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu)
|
||||
}
|
||||
|
||||
|
||||
private fun initRecyclerView() {
|
||||
//binding.recyclerView.setEdgeEffectColor(primaryColor)
|
||||
binding.recyclerView.layoutManager = LinearLayoutManager(this)
|
||||
@@ -231,10 +240,22 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
|
||||
R.id.menu_group_null -> {
|
||||
searchView.setQuery(getString(R.string.no_group), true)
|
||||
}
|
||||
R.id.sort_order_asc -> viewModel.setSortMode("asc")
|
||||
R.id.sort_order_desc -> viewModel.setSortMode("desc")
|
||||
R.id.sort_name_asc -> viewModel.setSortMode("name_asc")
|
||||
R.id.sort_name_desc -> viewModel.setSortMode("name_desc")
|
||||
R.id.sort_order_asc -> {
|
||||
viewModel.setSortMode("asc")
|
||||
item.isChecked = true
|
||||
}
|
||||
R.id.sort_order_desc -> {
|
||||
viewModel.setSortMode("desc")
|
||||
item.isChecked = true
|
||||
}
|
||||
R.id.sort_name_asc -> {
|
||||
viewModel.setSortMode("name_asc")
|
||||
item.isChecked = true
|
||||
}
|
||||
R.id.sort_name_desc -> {
|
||||
viewModel.setSortMode("name_desc")
|
||||
item.isChecked = true
|
||||
}
|
||||
else -> if (item.groupId == R.id.replace_group) {
|
||||
searchView.setQuery("group:${item.title}", true)
|
||||
viewModel.setSearchKey("group:${item.title}")
|
||||
|
||||
@@ -5,8 +5,11 @@ import android.text.TextUtils
|
||||
import io.legado.app.R
|
||||
import io.legado.app.base.BaseViewModel
|
||||
import io.legado.app.constant.AppLog
|
||||
import io.legado.app.constant.PreferKey
|
||||
import io.legado.app.data.appDb
|
||||
import io.legado.app.data.entities.ReplaceRule
|
||||
import io.legado.app.utils.getPrefString
|
||||
import io.legado.app.utils.putPrefString
|
||||
import io.legado.app.utils.splitNotBlank
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
@@ -26,7 +29,7 @@ import splitties.init.appCtx
|
||||
*/
|
||||
class ReplaceRuleViewModel(application: Application) : BaseViewModel(application) {
|
||||
|
||||
private val _sortMode = MutableStateFlow("desc")
|
||||
private val _sortMode = MutableStateFlow(context.getPrefString(PreferKey.replaceSortMode, "desc") ?: "desc")
|
||||
private val _searchKey = MutableStateFlow<String?>(null)
|
||||
|
||||
val sortMode: StateFlow<String> = _sortMode
|
||||
@@ -34,6 +37,7 @@ class ReplaceRuleViewModel(application: Application) : BaseViewModel(application
|
||||
|
||||
fun setSortMode(mode: String) {
|
||||
_sortMode.value = mode
|
||||
context.putPrefString(PreferKey.replaceSortMode, mode)
|
||||
}
|
||||
|
||||
fun setSearchKey(key: String?) {
|
||||
|
||||
@@ -34,14 +34,27 @@
|
||||
android:icon="@drawable/ic_sort"
|
||||
app:showAsAction="always">
|
||||
<menu>
|
||||
<item android:id="@+id/sort_order_asc" android:title="@string/sort_old_to_new" />
|
||||
<group
|
||||
android:id="@+id/group_sort"
|
||||
android:checkableBehavior="single">
|
||||
|
||||
<item android:id="@+id/sort_order_desc" android:title="@string/sort_new_to_old" />
|
||||
<item
|
||||
android:id="@+id/sort_order_asc"
|
||||
android:title="@string/sort_old_to_new" />
|
||||
|
||||
<item android:id="@+id/sort_name_asc" android:title="@string/sort_name_asc" />
|
||||
<item
|
||||
android:id="@+id/sort_order_desc"
|
||||
android:title="@string/sort_new_to_old" />
|
||||
|
||||
<item android:id="@+id/sort_name_desc" android:title="@string/sort_name_desc" />
|
||||
<item
|
||||
android:id="@+id/sort_name_asc"
|
||||
android:title="@string/sort_name_asc" />
|
||||
|
||||
<item
|
||||
android:id="@+id/sort_name_desc"
|
||||
android:title="@string/sort_name_desc" />
|
||||
|
||||
</group>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user