onCompletion не вызывается при использовании Koltin Flow с LiveData - PullRequest
1 голос
/ 23 января 2020

Итак, вот что я пытался сделать с Flow, я показываю ProgressBar в onStart и пытаюсь скрыть ProgressBar в onCompletion.

В классе ViewModel appDatabase.eventDao().getAllEvents() возвращает Flow<List<EntityEvents>

@ExperimentalCoroutinesApi
val allEvents: LiveData<Outcome<List<Event>>> = _fetchEvents.switchMap { _ ->
    appDatabase.eventDao().getAllEvents()
        .map { eventListMapper.map(it) }
        .map { sortEventsBasedOnPreference(it) }
        .flowOn(Dispatchers.IO)
        .map { Outcome.success(it) }
        .onStart { emitLoading(true) }
        .onCompletion { emitLoading(false) }
        .catch { emitFailure(it, R.string.err_something_wrong) }
        .asLiveData(context = viewModelScope.coroutineContext)
}

Все работает нормально, что я не могу понять, почему не вызывается onCompletion, когда задача завершена?

...