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