This commit is contained in:
kunfei
2022-02-14 09:42:50 +08:00
parent 2a4bd21a2b
commit baee2f1c2e
2 changed files with 15 additions and 6 deletions
@@ -23,14 +23,17 @@ import io.legado.app.ui.book.read.ReadBookActivity
import io.legado.app.ui.main.MainViewModel
import io.legado.app.utils.*
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.launch
import kotlin.math.max
/**
* 书架界面
*/
@ExperimentalCoroutinesApi
class BooksFragment() : BaseFragment(R.layout.fragment_books),
BaseBooksAdapter.CallBack {
@@ -109,9 +112,8 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
else -> appDb.bookDao.flowByGroup(groupId)
}.catch {
AppLog.put("书架更新出错", it)
}.collect { list ->
binding.tvEmptyMsg.isGone = list.isNotEmpty()
val books = when (getPrefInt(PreferKey.bookshelfSort)) {
}.mapLatest { list ->
when (getPrefInt(PreferKey.bookshelfSort)) {
1 -> list.sortedByDescending { it.latestChapterTime }
2 -> list.sortedWith { o1, o2 ->
o1.name.cnCompare(o2.name)
@@ -119,7 +121,9 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
3 -> list.sortedBy { it.order }
else -> list.sortedByDescending { it.durChapterTime }
}
booksAdapter.setItems(books)
}.collect { list ->
binding.tvEmptyMsg.isGone = list.isNotEmpty()
booksAdapter.setItems(list)
}
}
}
@@ -25,15 +25,18 @@ import io.legado.app.ui.book.search.SearchActivity
import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment
import io.legado.app.utils.*
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.launch
import kotlin.math.max
/**
* 书架界面
*/
@ExperimentalCoroutinesApi
class BookshelfFragment2 : BaseBookshelfFragment(R.layout.fragment_bookshelf1),
SearchView.OnQueryTextListener,
BaseBooksAdapter.CallBack {
@@ -123,8 +126,8 @@ class BookshelfFragment2 : BaseBookshelfFragment(R.layout.fragment_bookshelf1),
else -> appDb.bookDao.flowByGroup(groupId)
}.catch {
AppLog.put("书架更新出错", it)
}.collectLatest { list ->
books = when (getPrefInt(PreferKey.bookshelfSort)) {
}.mapLatest { list ->
when (getPrefInt(PreferKey.bookshelfSort)) {
1 -> list.sortedByDescending {
it.latestChapterTime
}
@@ -138,6 +141,8 @@ class BookshelfFragment2 : BaseBookshelfFragment(R.layout.fragment_bookshelf1),
it.durChapterTime
}
}
}.collectLatest { list ->
books = list
booksAdapter.notifyDataSetChanged()
binding.tvEmptyMsg.isGone = getItemCount() > 0
}