|
@@ -16,6 +16,7 @@ import androidx.recyclerview.widget.ItemTouchHelper
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
import io.legado.app.R
|
|
import io.legado.app.R
|
|
|
import io.legado.app.base.VMBaseActivity
|
|
import io.legado.app.base.VMBaseActivity
|
|
|
|
|
+import io.legado.app.constant.AppLog
|
|
|
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.data.entities.BookGroup
|
|
@@ -51,6 +52,7 @@ import io.legado.app.utils.startActivity
|
|
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
|
|
import kotlinx.coroutines.Dispatchers.IO
|
|
import kotlinx.coroutines.Dispatchers.IO
|
|
|
import kotlinx.coroutines.Job
|
|
import kotlinx.coroutines.Job
|
|
|
|
|
+import kotlinx.coroutines.flow.catch
|
|
|
import kotlinx.coroutines.flow.conflate
|
|
import kotlinx.coroutines.flow.conflate
|
|
|
import kotlinx.coroutines.flow.flowOn
|
|
import kotlinx.coroutines.flow.flowOn
|
|
|
import kotlinx.coroutines.flow.map
|
|
import kotlinx.coroutines.flow.map
|
|
@@ -58,7 +60,9 @@ import kotlinx.coroutines.launch
|
|
|
import kotlinx.coroutines.withContext
|
|
import kotlinx.coroutines.withContext
|
|
|
import kotlin.math.max
|
|
import kotlin.math.max
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * 书架管理
|
|
|
|
|
+ */
|
|
|
class BookshelfManageActivity :
|
|
class BookshelfManageActivity :
|
|
|
VMBaseActivity<ActivityArrangeBookBinding, BookshelfManageViewModel>(),
|
|
VMBaseActivity<ActivityArrangeBookBinding, BookshelfManageViewModel>(),
|
|
|
PopupMenu.OnMenuItemClickListener,
|
|
PopupMenu.OnMenuItemClickListener,
|
|
@@ -216,7 +220,9 @@ class BookshelfManageActivity :
|
|
|
@SuppressLint("NotifyDataSetChanged")
|
|
@SuppressLint("NotifyDataSetChanged")
|
|
|
private fun initGroupData() {
|
|
private fun initGroupData() {
|
|
|
lifecycleScope.launch {
|
|
lifecycleScope.launch {
|
|
|
- appDb.bookGroupDao.flowAll().conflate().collect {
|
|
|
|
|
|
|
+ appDb.bookGroupDao.flowAll().catch {
|
|
|
|
|
+ AppLog.put("书架管理界面获取分组数据失败\n${it.localizedMessage}", it)
|
|
|
|
|
+ }.flowOn(IO).conflate().collect {
|
|
|
groupList.clear()
|
|
groupList.clear()
|
|
|
groupList.addAll(it)
|
|
groupList.addAll(it)
|
|
|
adapter.notifyDataSetChanged()
|
|
adapter.notifyDataSetChanged()
|
|
@@ -251,6 +257,8 @@ class BookshelfManageActivity :
|
|
|
it.durChapterTime
|
|
it.durChapterTime
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ }.catch {
|
|
|
|
|
+ AppLog.put("书架管理界面获取书籍列表失败\n${it.localizedMessage}", it)
|
|
|
}.flowOn(IO)
|
|
}.flowOn(IO)
|
|
|
.conflate().collect {
|
|
.conflate().collect {
|
|
|
books = it
|
|
books = it
|