From 021e6bf4006213233d525a129cabbf06cd822c88 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Tue, 25 Jul 2023 11:21:52 +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 --- .../ui/book/manage/BookshelfManageActivity.kt | 16 +++++++++++++++- .../main/bookshelf/style1/books/BooksFragment.kt | 7 +++---- .../app/ui/main/explore/ExploreFragment.kt | 4 +++- .../io/legado/app/ui/main/rss/RssFragment.kt | 4 +++- app/src/main/res/values/arrays.xml | 1 + 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt b/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt index 6ff06907d..c88b53632 100644 --- a/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt @@ -45,6 +45,7 @@ import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import kotlin.math.max class BookshelfManageActivity : @@ -197,6 +198,7 @@ class BookshelfManageActivity : private fun upBookDataByGroupId() { booksFlowJob?.cancel() booksFlowJob = launch { + val bookSort = AppConfig.getBookSortByGroupId(viewModel.groupId) when (viewModel.groupId) { AppConst.rootGroupId -> appDb.bookDao.flowNetNoGroup() AppConst.bookGroupAllId -> appDb.bookDao.flowAll() @@ -207,16 +209,23 @@ class BookshelfManageActivity : AppConst.bookGroupErrorId -> appDb.bookDao.flowUpdateError() else -> appDb.bookDao.flowByGroup(viewModel.groupId) }.conflate().map { list -> - when (AppConfig.getBookSortByGroupId(viewModel.groupId)) { + when (bookSort) { 1 -> list.sortedByDescending { it.latestChapterTime } + 2 -> list.sortedWith { o1, o2 -> o1.name.cnCompare(o2.name) } + 3 -> list.sortedBy { it.order } + + 4 -> list.sortedByDescending { + max(it.latestChapterTime, it.durChapterTime) + } + else -> list.sortedByDescending { it.durChapterTime } @@ -225,6 +234,7 @@ class BookshelfManageActivity : .conflate().collect { books = it upBookData() + itemTouchCallback.isCanDrag = bookSort == 3 } } } @@ -263,8 +273,10 @@ class BookshelfManageActivity : R.id.menu_del_selection -> alertDelSelection() R.id.menu_update_enable -> viewModel.upCanUpdate(adapter.selection, true) + R.id.menu_update_disable -> viewModel.upCanUpdate(adapter.selection, false) + R.id.menu_add_to_group -> selectGroup(addToGroupRequestCode, 0) R.id.menu_change_source -> showDialogFragment() R.id.menu_check_selected_interval -> adapter.checkSelectedInterval() @@ -314,11 +326,13 @@ class BookshelfManageActivity : } viewModel.updateBook(*array) } + adapter.groupRequestCode -> { adapter.actionItem?.let { viewModel.updateBook(it.copy(group = groupId)) } } + addToGroupRequestCode -> adapter.selection.let { books -> val array = Array(books.size) { index -> val book = books[index] diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt index 37785d75a..94b30e9ae 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt @@ -154,11 +154,10 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books), 3 -> list.sortedBy { it.order } // 综合排序 issue #3192 - 4 -> { - list.sortedByDescending { - if(it.latestChapterTime>it.durChapterTime) it.latestChapterTime else it.durChapterTime - } + 4 -> list.sortedByDescending { + max(it.latestChapterTime, it.durChapterTime) } + else -> list.sortedByDescending { it.durChapterTime } } }.flowOn(Dispatchers.Default).catch { diff --git a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt b/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt index 6567fffee..1358938f2 100644 --- a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt @@ -98,7 +98,9 @@ class ExploreFragment() : VMBaseFragment(R.layout.fragment_exp searchView.onActionViewExpanded() searchView.isSubmitButtonEnabled = true searchView.queryHint = getString(R.string.screen_find) - searchView.clearFocus() + searchView.post { + searchView.clearFocus() + } searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { return false diff --git a/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt b/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt index cc8b86996..38268f2ae 100644 --- a/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt @@ -108,7 +108,9 @@ class RssFragment() : VMBaseFragment(R.layout.fragment_rss), searchView.onActionViewExpanded() searchView.isSubmitButtonEnabled = true searchView.queryHint = getString(R.string.rss) - searchView.clearFocus() + searchView.post { + searchView.clearFocus() + } searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { return false diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 98b87a629..aa7287672 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -23,6 +23,7 @@ @string/bookshelf_px_1 @string/bookshelf_px_2 @string/bookshelf_px_3 + @string/bookshelf_px_4