From ce2e8bfc2254f0a0f32adbe81abd548aef5411f4 Mon Sep 17 00:00:00 2001 From: kunfei Date: Mon, 19 Jun 2023 22:37:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/source/manage/BookSourceActivity.kt | 46 +++++++++---------- .../book/source/manage/BookSourceAdapter.kt | 4 ++ .../ui/book/source/manage/BookSourceSort.kt | 5 ++ .../book/source/manage/BookSourceViewModel.kt | 29 ++++++------ 4 files changed, 45 insertions(+), 39 deletions(-) create mode 100644 app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceSort.kt diff --git a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt index 4d8209805..2909270ee 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt @@ -66,7 +66,8 @@ class BookSourceActivity : VMBaseActivity() private var groupMenu: SubMenu? = null - private var sort = Sort.Default + override var sort = BookSourceSort.Default + private set override var sortAscending = true private set private var snackBar: Snackbar? = null @@ -157,43 +158,43 @@ class BookSourceActivity : VMBaseActivity { item.isChecked = true - sort = Sort.Default + sort = BookSourceSort.Default upBookSource(searchView.query?.toString()) } R.id.menu_sort_auto -> { item.isChecked = true - sort = Sort.Weight + sort = BookSourceSort.Weight upBookSource(searchView.query?.toString()) } R.id.menu_sort_name -> { item.isChecked = true - sort = Sort.Name + sort = BookSourceSort.Name upBookSource(searchView.query?.toString()) } R.id.menu_sort_url -> { item.isChecked = true - sort = Sort.Url + sort = BookSourceSort.Url upBookSource(searchView.query?.toString()) } R.id.menu_sort_time -> { item.isChecked = true - sort = Sort.Update + sort = BookSourceSort.Update upBookSource(searchView.query?.toString()) } R.id.menu_sort_respondTime -> { item.isChecked = true - sort = Sort.Respond + sort = BookSourceSort.Respond upBookSource(searchView.query?.toString()) } R.id.menu_sort_enable -> { item.isChecked = true - sort = Sort.Enable + sort = BookSourceSort.Enable upBookSource(searchView.query?.toString()) } @@ -279,15 +280,15 @@ class BookSourceActivity : VMBaseActivity if (sortAscending) { when (sort) { - Sort.Weight -> data.sortedBy { it.weight } - Sort.Name -> data.sortedWith { o1, o2 -> + BookSourceSort.Weight -> data.sortedBy { it.weight } + BookSourceSort.Name -> data.sortedWith { o1, o2 -> o1.bookSourceName.cnCompare(o2.bookSourceName) } - Sort.Url -> data.sortedBy { it.bookSourceUrl } - Sort.Update -> data.sortedByDescending { it.lastUpdateTime } - Sort.Respond -> data.sortedBy { it.respondTime } - Sort.Enable -> data.sortedWith { o1, o2 -> + BookSourceSort.Url -> data.sortedBy { it.bookSourceUrl } + BookSourceSort.Update -> data.sortedByDescending { it.lastUpdateTime } + BookSourceSort.Respond -> data.sortedBy { it.respondTime } + BookSourceSort.Enable -> data.sortedWith { o1, o2 -> var sort = -o1.enabled.compareTo(o2.enabled) if (sort == 0) { sort = o1.bookSourceName.cnCompare(o2.bookSourceName) @@ -299,15 +300,15 @@ class BookSourceActivity : VMBaseActivity data.sortedByDescending { it.weight } - Sort.Name -> data.sortedWith { o1, o2 -> + BookSourceSort.Weight -> data.sortedByDescending { it.weight } + BookSourceSort.Name -> data.sortedWith { o1, o2 -> o2.bookSourceName.cnCompare(o1.bookSourceName) } - Sort.Url -> data.sortedByDescending { it.bookSourceUrl } - Sort.Update -> data.sortedBy { it.lastUpdateTime } - Sort.Respond -> data.sortedByDescending { it.respondTime } - Sort.Enable -> data.sortedWith { o1, o2 -> + BookSourceSort.Url -> data.sortedByDescending { it.bookSourceUrl } + BookSourceSort.Update -> data.sortedBy { it.lastUpdateTime } + BookSourceSort.Respond -> data.sortedByDescending { it.respondTime } + BookSourceSort.Enable -> data.sortedWith { o1, o2 -> var sort = o1.enabled.compareTo(o2.enabled) if (sort == 0) { sort = o1.bookSourceName.cnCompare(o2.bookSourceName) @@ -322,7 +323,7 @@ class BookSourceActivity : VMBaseActivity adapter.setItems(data, adapter.diffItemCallback) - itemTouchCallback.isCanDrag = sort == Sort.Default + itemTouchCallback.isCanDrag = sort == BookSourceSort.Default delay(500) } } @@ -699,7 +700,4 @@ class BookSourceActivity : VMBaseActivity Unit ) { execute { @@ -169,7 +168,7 @@ class BookSourceViewModel(application: Application) : BaseViewModel(application) private fun getBookSources( searchKey: String?, sortAscending: Boolean, - sort: Sort + sort: BookSourceSort ): List { return when { searchKey.isNullOrEmpty() -> { @@ -202,15 +201,15 @@ class BookSourceViewModel(application: Application) : BaseViewModel(application) } }.let { data -> if (sortAscending) when (sort) { - Sort.Weight -> data.sortedBy { it.weight } - Sort.Name -> data.sortedWith { o1, o2 -> + BookSourceSort.Weight -> data.sortedBy { it.weight } + BookSourceSort.Name -> data.sortedWith { o1, o2 -> o1.bookSourceName.cnCompare(o2.bookSourceName) } - Sort.Url -> data.sortedBy { it.bookSourceUrl } - Sort.Update -> data.sortedByDescending { it.lastUpdateTime } - Sort.Respond -> data.sortedBy { it.respondTime } - Sort.Enable -> data.sortedWith { o1, o2 -> + BookSourceSort.Url -> data.sortedBy { it.bookSourceUrl } + BookSourceSort.Update -> data.sortedByDescending { it.lastUpdateTime } + BookSourceSort.Respond -> data.sortedBy { it.respondTime } + BookSourceSort.Enable -> data.sortedWith { o1, o2 -> var sortNum = -o1.enabled.compareTo(o2.enabled) if (sortNum == 0) { sortNum = o1.bookSourceName.cnCompare(o2.bookSourceName) @@ -221,15 +220,15 @@ class BookSourceViewModel(application: Application) : BaseViewModel(application) else -> data } else when (sort) { - Sort.Weight -> data.sortedByDescending { it.weight } - Sort.Name -> data.sortedWith { o1, o2 -> + BookSourceSort.Weight -> data.sortedByDescending { it.weight } + BookSourceSort.Name -> data.sortedWith { o1, o2 -> o2.bookSourceName.cnCompare(o1.bookSourceName) } - Sort.Url -> data.sortedByDescending { it.bookSourceUrl } - Sort.Update -> data.sortedBy { it.lastUpdateTime } - Sort.Respond -> data.sortedByDescending { it.respondTime } - Sort.Enable -> data.sortedWith { o1, o2 -> + BookSourceSort.Url -> data.sortedByDescending { it.bookSourceUrl } + BookSourceSort.Update -> data.sortedBy { it.lastUpdateTime } + BookSourceSort.Respond -> data.sortedByDescending { it.respondTime } + BookSourceSort.Enable -> data.sortedWith { o1, o2 -> var sortNum = o1.enabled.compareTo(o2.enabled) if (sortNum == 0) { sortNum = o1.bookSourceName.cnCompare(o2.bookSourceName)