diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt index 670a53319..92cebeb65 100644 --- a/buildSrc/src/main/kotlin/Libs.kt +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -26,6 +26,12 @@ object Libs { const val kotlinx_coroutines_test: String = "org.jetbrains.kotlinx:kotlinx-coroutines-test:" + Versions.org_jetbrains_kotlinx_kotlinx_coroutines + /** + * https://github.com/Kotlin/kotlinx.coroutines + */ + const val kotlinx_coroutines_rx2: String = "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:" + + Versions.org_jetbrains_kotlinx_kotlinx_coroutines + /** * https://developer.android.com/testing */ diff --git a/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt b/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt index 7d455f588..0c32d0ecd 100644 --- a/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt +++ b/buildSrc/src/main/kotlin/plugin/AllProjectConfigurer.kt @@ -204,6 +204,7 @@ class AllProjectConfigurer { implementation(Libs.fetch) implementation(Libs.rxandroid) implementation(Libs.rxjava) + implementation(Libs.kotlinx_coroutines_rx2) implementation(Libs.preference_ktx) implementation(Libs.material_show_case_view) implementation(Libs.roomKtx) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt index 5e31d1bae..ced2331ee 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt @@ -20,12 +20,11 @@ package org.kiwix.kiwixmobile.core.page.viewmodel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.Disposable import io.reactivex.processors.PublishProcessor import io.reactivex.schedulers.Schedulers -import kotlinx.coroutines.launch +import kotlinx.coroutines.rx2.asFlowable import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.dao.BasePageDao import org.kiwix.kiwixmobile.core.dao.PageDao @@ -84,13 +83,11 @@ abstract class PageViewModel>( } is PageRoomDao -> { - viewModelScope.launch { - try { - // basePageDao.pages().collect(::UpdatePages) - } catch (ignore: Exception) { - ignore.printStackTrace() - } - } + compositeDisposable.addAll( + viewStateReducer(), + basePageDao.pages().asFlowable().subscribeOn(Schedulers.io()) + .subscribe({ actions.offer(UpdatePages(it)) }, Throwable::printStackTrace) + ) } } }