pull/517/head
gedoor 5 years ago
parent 1022c9b62a
commit 2121ff7c34
  1. 41
      app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt

@ -63,7 +63,7 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
private var bookSourceLiveDate: LiveData<List<BookSource>>? = null private var bookSourceLiveDate: LiveData<List<BookSource>>? = null
private var groups = linkedSetOf<String>() private var groups = linkedSetOf<String>()
private var groupMenu: SubMenu? = null private var groupMenu: SubMenu? = null
private var sort = 0 private var sort = Sort.Default
private var sortAscending = 0 private var sortAscending = 0
private var snackBar: Snackbar? = null private var snackBar: Snackbar? = null
@ -108,27 +108,27 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
R.id.menu_import_source_onLine -> showImportDialog() R.id.menu_import_source_onLine -> showImportDialog()
R.id.menu_sort_manual -> { R.id.menu_sort_manual -> {
item.isChecked = true item.isChecked = true
sortCheck(0) sortCheck(Sort.Default)
initLiveDataBookSource(searchView.query?.toString()) initLiveDataBookSource(searchView.query?.toString())
} }
R.id.menu_sort_auto -> { R.id.menu_sort_auto -> {
item.isChecked = true item.isChecked = true
sortCheck(1) sortCheck(Sort.Weight)
initLiveDataBookSource(searchView.query?.toString()) initLiveDataBookSource(searchView.query?.toString())
} }
R.id.menu_sort_pin_yin -> { R.id.menu_sort_pin_yin -> {
item.isChecked = true item.isChecked = true
sortCheck(2) sortCheck(Sort.Name)
initLiveDataBookSource(searchView.query?.toString()) initLiveDataBookSource(searchView.query?.toString())
} }
R.id.menu_sort_url -> { R.id.menu_sort_url -> {
item.isChecked = true item.isChecked = true
sortCheck(3) sortCheck(Sort.Url)
initLiveDataBookSource(searchView.query?.toString()) initLiveDataBookSource(searchView.query?.toString())
} }
R.id.menu_sort_time -> { R.id.menu_sort_time -> {
item.isChecked = true item.isChecked = true
sortCheck(4) sortCheck(Sort.Update)
initLiveDataBookSource(searchView.query?.toString()) initLiveDataBookSource(searchView.query?.toString())
} }
R.id.menu_enabled_group -> { R.id.menu_enabled_group -> {
@ -189,17 +189,21 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
bookSourceLiveDate?.observe(this, { data -> bookSourceLiveDate?.observe(this, { data ->
val sourceList = when (sortAscending % 2) { val sourceList = when (sortAscending % 2) {
0 -> when (sort) { 0 -> when (sort) {
1 -> data.sortedBy { it.weight } Sort.Weight -> data.sortedBy { it.weight }
2 -> data.sortedBy { it.bookSourceName } Sort.Name -> data.sortedWith { o1, o2 ->
3 -> data.sortedBy { it.bookSourceUrl } o1.bookSourceName.cnCompare(o2.bookSourceName)
4 -> data.sortedByDescending { it.lastUpdateTime } }
Sort.Url -> data.sortedBy { it.bookSourceUrl }
Sort.Update -> data.sortedByDescending { it.lastUpdateTime }
else -> data else -> data
} }
else -> when (sort) { else -> when (sort) {
1 -> data.sortedByDescending { it.weight } Sort.Weight -> data.sortedByDescending { it.weight }
2 -> data.sortedByDescending { it.bookSourceName } Sort.Name -> data.sortedWith { o1, o2 ->
3 -> data.sortedByDescending { it.bookSourceUrl } o2.bookSourceName.cnCompare(o1.bookSourceName)
4 -> data.sortedBy { it.lastUpdateTime } }
Sort.Url -> data.sortedByDescending { it.bookSourceUrl }
Sort.Update -> data.sortedBy { it.lastUpdateTime }
else -> data.reversed() else -> data.reversed()
} }
} }
@ -215,12 +219,12 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
TextDialog.show(supportFragmentManager, text, TextDialog.MD) TextDialog.show(supportFragmentManager, text, TextDialog.MD)
} }
private fun sortCheck(sortId: Int) { private fun sortCheck(sort: Sort) {
if (sort == sortId) { if (this.sort == sort) {
sortAscending += 1 sortAscending += 1
} else { } else {
sortAscending = 0 sortAscending = 0
sort = sortId this.sort = sort
} }
} }
@ -479,4 +483,7 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
} }
} }
enum class Sort {
Default, Name, Url, Weight, Update
}
} }
Loading…
Cancel
Save