|
@@ -45,6 +45,7 @@ import kotlinx.coroutines.flow.flowOn
|
|
|
import kotlinx.coroutines.flow.map
|
|
import kotlinx.coroutines.flow.map
|
|
|
import kotlinx.coroutines.launch
|
|
import kotlinx.coroutines.launch
|
|
|
import kotlinx.coroutines.withContext
|
|
import kotlinx.coroutines.withContext
|
|
|
|
|
+import kotlin.math.max
|
|
|
|
|
|
|
|
|
|
|
|
|
class BookshelfManageActivity :
|
|
class BookshelfManageActivity :
|
|
@@ -197,6 +198,7 @@ class BookshelfManageActivity :
|
|
|
private fun upBookDataByGroupId() {
|
|
private fun upBookDataByGroupId() {
|
|
|
booksFlowJob?.cancel()
|
|
booksFlowJob?.cancel()
|
|
|
booksFlowJob = launch {
|
|
booksFlowJob = launch {
|
|
|
|
|
+ val bookSort = AppConfig.getBookSortByGroupId(viewModel.groupId)
|
|
|
when (viewModel.groupId) {
|
|
when (viewModel.groupId) {
|
|
|
AppConst.rootGroupId -> appDb.bookDao.flowNetNoGroup()
|
|
AppConst.rootGroupId -> appDb.bookDao.flowNetNoGroup()
|
|
|
AppConst.bookGroupAllId -> appDb.bookDao.flowAll()
|
|
AppConst.bookGroupAllId -> appDb.bookDao.flowAll()
|
|
@@ -207,16 +209,23 @@ class BookshelfManageActivity :
|
|
|
AppConst.bookGroupErrorId -> appDb.bookDao.flowUpdateError()
|
|
AppConst.bookGroupErrorId -> appDb.bookDao.flowUpdateError()
|
|
|
else -> appDb.bookDao.flowByGroup(viewModel.groupId)
|
|
else -> appDb.bookDao.flowByGroup(viewModel.groupId)
|
|
|
}.conflate().map { list ->
|
|
}.conflate().map { list ->
|
|
|
- when (AppConfig.getBookSortByGroupId(viewModel.groupId)) {
|
|
|
|
|
|
|
+ when (bookSort) {
|
|
|
1 -> list.sortedByDescending {
|
|
1 -> list.sortedByDescending {
|
|
|
it.latestChapterTime
|
|
it.latestChapterTime
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
2 -> list.sortedWith { o1, o2 ->
|
|
2 -> list.sortedWith { o1, o2 ->
|
|
|
o1.name.cnCompare(o2.name)
|
|
o1.name.cnCompare(o2.name)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
3 -> list.sortedBy {
|
|
3 -> list.sortedBy {
|
|
|
it.order
|
|
it.order
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ 4 -> list.sortedByDescending {
|
|
|
|
|
+ max(it.latestChapterTime, it.durChapterTime)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
else -> list.sortedByDescending {
|
|
else -> list.sortedByDescending {
|
|
|
it.durChapterTime
|
|
it.durChapterTime
|
|
|
}
|
|
}
|
|
@@ -225,6 +234,7 @@ class BookshelfManageActivity :
|
|
|
.conflate().collect {
|
|
.conflate().collect {
|
|
|
books = it
|
|
books = it
|
|
|
upBookData()
|
|
upBookData()
|
|
|
|
|
+ itemTouchCallback.isCanDrag = bookSort == 3
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -263,8 +273,10 @@ class BookshelfManageActivity :
|
|
|
R.id.menu_del_selection -> alertDelSelection()
|
|
R.id.menu_del_selection -> alertDelSelection()
|
|
|
R.id.menu_update_enable ->
|
|
R.id.menu_update_enable ->
|
|
|
viewModel.upCanUpdate(adapter.selection, true)
|
|
viewModel.upCanUpdate(adapter.selection, true)
|
|
|
|
|
+
|
|
|
R.id.menu_update_disable ->
|
|
R.id.menu_update_disable ->
|
|
|
viewModel.upCanUpdate(adapter.selection, false)
|
|
viewModel.upCanUpdate(adapter.selection, false)
|
|
|
|
|
+
|
|
|
R.id.menu_add_to_group -> selectGroup(addToGroupRequestCode, 0)
|
|
R.id.menu_add_to_group -> selectGroup(addToGroupRequestCode, 0)
|
|
|
R.id.menu_change_source -> showDialogFragment<SourcePickerDialog>()
|
|
R.id.menu_change_source -> showDialogFragment<SourcePickerDialog>()
|
|
|
R.id.menu_check_selected_interval -> adapter.checkSelectedInterval()
|
|
R.id.menu_check_selected_interval -> adapter.checkSelectedInterval()
|
|
@@ -314,11 +326,13 @@ class BookshelfManageActivity :
|
|
|
}
|
|
}
|
|
|
viewModel.updateBook(*array)
|
|
viewModel.updateBook(*array)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
adapter.groupRequestCode -> {
|
|
adapter.groupRequestCode -> {
|
|
|
adapter.actionItem?.let {
|
|
adapter.actionItem?.let {
|
|
|
viewModel.updateBook(it.copy(group = groupId))
|
|
viewModel.updateBook(it.copy(group = groupId))
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
addToGroupRequestCode -> adapter.selection.let { books ->
|
|
addToGroupRequestCode -> adapter.selection.let { books ->
|
|
|
val array = Array(books.size) { index ->
|
|
val array = Array(books.size) { index ->
|
|
|
val book = books[index]
|
|
val book = books[index]
|