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) }) }