fix events leak
This commit is contained in:
+8
-3
@@ -8,13 +8,14 @@ import com.arkivanov.decompose.router.webhistory.WebNavigation
|
|||||||
import com.arkivanov.decompose.router.webhistory.WebNavigationOwner
|
import com.arkivanov.decompose.router.webhistory.WebNavigationOwner
|
||||||
import com.arkivanov.essenty.lifecycle.coroutines.repeatOnLifecycle
|
import com.arkivanov.essenty.lifecycle.coroutines.repeatOnLifecycle
|
||||||
import kotlinx.coroutines.flow.collect
|
import kotlinx.coroutines.flow.collect
|
||||||
|
import kotlinx.coroutines.flow.flatMapLatest
|
||||||
|
import kotlinx.coroutines.flow.flowOf
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.serialization.KSerializer
|
import kotlinx.serialization.KSerializer
|
||||||
import org.koin.core.Koin
|
import org.koin.core.Koin
|
||||||
import org.koin.core.annotation.Factory
|
import org.koin.core.annotation.Factory
|
||||||
import ru.shadowsparky.http.domain.TokenStorage
|
import ru.shadowsparky.http.domain.TokenStorage
|
||||||
import ru.shadowsparky.http.domain.hasAccount
|
|
||||||
import ru.shadowsparky.ui.nav.RootComponent
|
import ru.shadowsparky.ui.nav.RootComponent
|
||||||
import ru.shadowsparky.updater.presentation.UpdateComponentFactory
|
import ru.shadowsparky.updater.presentation.UpdateComponentFactory
|
||||||
import ru.shadowsparky.vbox.shared.di.factory.ImageLoaderProvider
|
import ru.shadowsparky.vbox.shared.di.factory.ImageLoaderProvider
|
||||||
@@ -48,9 +49,13 @@ class VBoxRootComponent(
|
|||||||
init {
|
init {
|
||||||
scope.launch {
|
scope.launch {
|
||||||
repeatOnLifecycle {
|
repeatOnLifecycle {
|
||||||
if (tokenStorage.hasAccount()) {
|
tokenStorage.token.flatMapLatest {
|
||||||
remoteEventListener.event.collect()
|
if (it != null) {
|
||||||
|
remoteEventListener.event
|
||||||
|
} else {
|
||||||
|
flowOf()
|
||||||
}
|
}
|
||||||
|
}.collect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
scope.launch {
|
scope.launch {
|
||||||
|
|||||||
Reference in New Issue
Block a user