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