diff --git a/feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddVM.kt b/feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddVM.kt index e0edd2fe..9a052d80 100644 --- a/feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddVM.kt +++ b/feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddVM.kt @@ -8,6 +8,7 @@ import com.hoc.flowmvi.domain.usecase.AddUserUseCase import com.hoc.flowmvi.mvi_base.AbstractMviViewModel import com.hoc081098.flowext.flatMapFirst import com.hoc081098.flowext.mapTo +import com.hoc081098.flowext.startWith import com.hoc081098.flowext.withLatestFrom import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow @@ -23,7 +24,6 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.scan import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.take @@ -117,7 +117,7 @@ class AddVM( ifRight = { PartialStateChange.AddUser.AddUserSuccess(user) } ) } - .onStart { emit(PartialStateChange.AddUser.Loading) } + .startWith(PartialStateChange.AddUser.Loading) } val firstChanges = merge( diff --git a/feature-main/src/main/java/com/hoc/flowmvi/ui/main/MainVM.kt b/feature-main/src/main/java/com/hoc/flowmvi/ui/main/MainVM.kt index 41be5fa9..46812f24 100644 --- a/feature-main/src/main/java/com/hoc/flowmvi/ui/main/MainVM.kt +++ b/feature-main/src/main/java/com/hoc/flowmvi/ui/main/MainVM.kt @@ -7,6 +7,7 @@ import com.hoc.flowmvi.domain.usecase.RefreshGetUsersUseCase import com.hoc.flowmvi.domain.usecase.RemoveUserUseCase import com.hoc.flowmvi.mvi_base.AbstractMviViewModel import com.hoc081098.flowext.flatMapFirst +import com.hoc081098.flowext.startWith import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.Flow @@ -24,7 +25,6 @@ import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.scan import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.take @@ -93,7 +93,7 @@ class MainVM( ifRight = { PartialChange.GetUser.Data(it.map(::UserItem)) } ) } - .onStart { emit(PartialChange.GetUser.Loading) } + .startWith(PartialChange.GetUser.Loading) val refreshChanges = refreshGetUsers::invoke .asFlow() @@ -103,7 +103,7 @@ class MainVM( ifRight = { PartialChange.Refresh.Success } ) } - .onStart { emit(PartialChange.Refresh.Loading) } + .startWith(PartialChange.Refresh.Loading) return merge( filterIsInstance() diff --git a/feature-search/src/main/java/com/hoc/flowmvi/ui/search/SearchVM.kt b/feature-search/src/main/java/com/hoc/flowmvi/ui/search/SearchVM.kt index ed66e68a..8089d5ee 100644 --- a/feature-search/src/main/java/com/hoc/flowmvi/ui/search/SearchVM.kt +++ b/feature-search/src/main/java/com/hoc/flowmvi/ui/search/SearchVM.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.viewModelScope import com.hoc.flowmvi.domain.usecase.SearchUsersUseCase import com.hoc.flowmvi.mvi_base.AbstractMviViewModel import com.hoc081098.flowext.flatMapFirst +import com.hoc081098.flowext.startWith import com.hoc081098.flowext.takeUntil import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview @@ -23,7 +24,6 @@ import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.scan import kotlinx.coroutines.flow.stateIn import timber.log.Timber @@ -67,7 +67,7 @@ class SearchVM( } ) } - .onStart { emit(PartialStateChange.Loading) } + .startWith(PartialStateChange.Loading) } val queryFlow = filterIsInstance()