From abb7a82859bb372802dbf7eee56839774a87a745 Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 28 Feb 2020 22:21:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/main/bookshelf/BookshelfFragment.kt | 2 +- .../app/ui/main/bookshelf/books/BooksFragment.kt | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt index cd4d40a72..f49cf2ea6 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt @@ -169,7 +169,7 @@ class BookshelfFragment : VMBaseFragment(R.layout.fragment_b changed = true } if (bookshelfSort != rg_sort.getCheckedIndex()) { - putPrefInt(PreferKey.bookshelfLayout, rg_sort.getCheckedIndex()) + putPrefInt(PreferKey.bookshelfSort, rg_sort.getCheckedIndex()) changed = true } if (changed) { diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt index 1a462a294..49cadb56c 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt @@ -103,10 +103,16 @@ class BooksFragment : BaseFragment(R.layout.fragment_books), -3 -> App.db.bookDao().observeAudio() else -> App.db.bookDao().observeByGroup(groupId) } - bookshelfLiveData?.observe(this, Observer { + bookshelfLiveData?.observe(this, Observer { list -> + val books = when (getPrefInt(PreferKey.bookshelfSort)) { + 1 -> list.sortedByDescending { it.latestChapterTime } + 2 -> list.sortedBy { it.name } + 3 -> list.sortedBy { it.order } + else -> list.sortedByDescending { it.durChapterTime } + } val diffResult = DiffUtil - .calculateDiff(BooksDiffCallBack(ArrayList(booksAdapter.getItems()), it)) - booksAdapter.setItems(it, diffResult) + .calculateDiff(BooksDiffCallBack(ArrayList(booksAdapter.getItems()), books)) + booksAdapter.setItems(books, diffResult) }) }