This commit is contained in:
Horis 2023-06-20 23:17:50 +08:00
parent 3a67b22fdb
commit 0f3ab21a81
6 changed files with 18 additions and 7 deletions

View File

@ -44,6 +44,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
/** /**
@ -204,7 +205,7 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_
} }
} }
launch { launch {
appDb.bookSourceDao.flowEnabledGroups().conflate().collect { appDb.bookSourceDao.flowEnabledGroups().flowOn(IO).conflate().collect {
groups.clear() groups.clear()
groups.addAll(it) groups.addAll(it)
upGroupMenu() upGroupMenu()

View File

@ -47,8 +47,10 @@ import io.legado.app.utils.startActivity
import io.legado.app.utils.toastOnUi import io.legado.app.utils.toastOnUi
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
import io.legado.app.utils.visible import io.legado.app.utils.visible
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -230,7 +232,7 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c
} }
} }
launch { launch {
appDb.bookSourceDao.flowEnabledGroups().conflate().collect { appDb.bookSourceDao.flowEnabledGroups().flowOn(IO).conflate().collect {
groups.clear() groups.clear()
groups.addAll(it) groups.addAll(it)
upGroupMenu() upGroupMenu()

View File

@ -31,6 +31,7 @@ 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.conflate import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import splitties.init.appCtx import splitties.init.appCtx
@ -279,7 +280,7 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
adapter.setItems(it) adapter.setItems(it)
} }
launch { launch {
appDb.bookSourceDao.flowEnabledGroups().collect { appDb.bookSourceDao.flowEnabledGroups().flowOn(IO).collect {
groups = it groups = it
} }
} }

View File

@ -42,9 +42,11 @@ import io.legado.app.ui.widget.recycler.VerticalDivider
import io.legado.app.utils.* import io.legado.app.utils.*
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.* import kotlinx.coroutines.*
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
/** /**
@ -321,7 +323,7 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
} }
}.catch { }.catch {
AppLog.put("书源界面更新书源出错", it) AppLog.put("书源界面更新书源出错", it)
}.conflate().collect { data -> }.flowOn(IO).conflate().collect { data ->
adapter.setItems(data, adapter.diffItemCallback) adapter.setItems(data, adapter.diffItemCallback)
itemTouchCallback.isCanDrag = sort == BookSourceSort.Default itemTouchCallback.isCanDrag = sort == BookSourceSort.Default
delay(500) delay(500)
@ -336,10 +338,11 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
private fun initLiveDataGroup() { private fun initLiveDataGroup() {
launch { launch {
appDb.bookSourceDao.flowGroups().conflate().collect { appDb.bookSourceDao.flowGroups().flowOn(IO).conflate().collect {
groups.clear() groups.clear()
groups.addAll(it) groups.addAll(it)
upGroupMenu() upGroupMenu()
delay(500)
} }
} }
} }

View File

@ -25,6 +25,8 @@ import io.legado.app.utils.applyTint
import io.legado.app.utils.requestInputMethod import io.legado.app.utils.requestInputMethod
import io.legado.app.utils.setLayout import io.legado.app.utils.setLayout
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -55,7 +57,7 @@ class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view),
private fun initData() { private fun initData() {
launch { launch {
appDb.bookSourceDao.flowGroups().collect { appDb.bookSourceDao.flowGroups().flowOn(IO).collect {
adapter.setItems(it) adapter.setItems(it)
} }
} }

View File

@ -29,9 +29,11 @@ import io.legado.app.utils.setEdgeEffectColor
import io.legado.app.utils.startActivity import io.legado.app.utils.startActivity
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
/** /**
@ -107,7 +109,7 @@ class ExploreFragment : VMBaseFragment<ExploreViewModel>(R.layout.fragment_explo
private fun initGroupData() { private fun initGroupData() {
launch { launch {
appDb.bookSourceDao.flowExploreGroups().conflate().collect { appDb.bookSourceDao.flowExploreGroups().flowOn(IO).conflate().collect {
groups.clear() groups.clear()
groups.addAll(it) groups.addAll(it)
upGroupsMenu() upGroupsMenu()