|
@@ -16,6 +16,7 @@ import io.legado.app.constant.EventBus
|
|
|
import io.legado.app.constant.PreferKey
|
|
import io.legado.app.constant.PreferKey
|
|
|
import io.legado.app.data.appDb
|
|
import io.legado.app.data.appDb
|
|
|
import io.legado.app.data.entities.Book
|
|
import io.legado.app.data.entities.Book
|
|
|
|
|
+import io.legado.app.data.entities.BookGroup
|
|
|
import io.legado.app.databinding.FragmentBooksBinding
|
|
import io.legado.app.databinding.FragmentBooksBinding
|
|
|
import io.legado.app.help.book.isAudio
|
|
import io.legado.app.help.book.isAudio
|
|
|
import io.legado.app.help.config.AppConfig
|
|
import io.legado.app.help.config.AppConfig
|
|
@@ -40,10 +41,11 @@ import kotlin.math.max
|
|
|
class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|
class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|
|
BaseBooksAdapter.CallBack {
|
|
BaseBooksAdapter.CallBack {
|
|
|
|
|
|
|
|
- constructor(position: Int, groupId: Long) : this() {
|
|
|
|
|
|
|
+ constructor(position: Int, group: BookGroup) : this() {
|
|
|
val bundle = Bundle()
|
|
val bundle = Bundle()
|
|
|
bundle.putInt("position", position)
|
|
bundle.putInt("position", position)
|
|
|
- bundle.putLong("groupId", groupId)
|
|
|
|
|
|
|
+ bundle.putLong("groupId", group.groupId)
|
|
|
|
|
+ bundle.putInt("bookSort", group.getRealBookSort())
|
|
|
arguments = bundle
|
|
arguments = bundle
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -63,6 +65,7 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|
|
private var savedInstanceState: Bundle? = null
|
|
private var savedInstanceState: Bundle? = null
|
|
|
private var position = 0
|
|
private var position = 0
|
|
|
private var groupId = -1L
|
|
private var groupId = -1L
|
|
|
|
|
+ private var bookSort = 0
|
|
|
private var upLastUpdateTimeJob : Job? = null
|
|
private var upLastUpdateTimeJob : Job? = null
|
|
|
|
|
|
|
|
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
|
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
|
@@ -70,6 +73,7 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|
|
arguments?.let {
|
|
arguments?.let {
|
|
|
position = it.getInt("position", 0)
|
|
position = it.getInt("position", 0)
|
|
|
groupId = it.getLong("groupId", -1)
|
|
groupId = it.getLong("groupId", -1)
|
|
|
|
|
+ bookSort = it.getInt("bookSort", 0)
|
|
|
}
|
|
}
|
|
|
initRecyclerView()
|
|
initRecyclerView()
|
|
|
upRecyclerData()
|
|
upRecyclerData()
|
|
@@ -120,7 +124,7 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|
|
AppConst.bookGroupErrorId -> appDb.bookDao.flowUpdateError()
|
|
AppConst.bookGroupErrorId -> appDb.bookDao.flowUpdateError()
|
|
|
else -> appDb.bookDao.flowByGroup(groupId)
|
|
else -> appDb.bookDao.flowByGroup(groupId)
|
|
|
}.conflate().map { list ->
|
|
}.conflate().map { list ->
|
|
|
- when (AppConfig.bookshelfSort) {
|
|
|
|
|
|
|
+ when (bookSort) {
|
|
|
1 -> list.sortedByDescending { it.latestChapterTime }
|
|
1 -> list.sortedByDescending { it.latestChapterTime }
|
|
|
2 -> list.sortedWith { o1, o2 ->
|
|
2 -> list.sortedWith { o1, o2 ->
|
|
|
o1.name.cnCompare(o2.name)
|
|
o1.name.cnCompare(o2.name)
|