Мой пользовательский интерфейс может инициировать несколько сетевых подключений, и я хочу предоставить индикатор состояния, независимо от того, является ли соединение Loading
, Completed
или Error
.
Каждое сетевое подключение будет иметь Observable
NetworkStatus
.Так как одновременно может быть запущено много сетевых подключений, я хотел просто merge
их всех, чтобы пользовательский интерфейс мог получить один источник NetworkStatus
.
Этот один источник должен вести себя так:
Если все сетевые соединения завершены без ошибок, источник выдает Complete
.
Как только будет запущено новое сетевое соединение,источник должен выдавать статус Loading
.
Если запущено несколько сетевых подключений и некоторые из них завершены, а некоторые загружаются, то должен быть выдан статус Loading
.Состояние Loading
изменяется только в том случае, если все сетевые подключения завершены.
Событие Error
должно отправляться сразу же после его возникновения и переопределяться только после сбоя сетевого подключения.попытался успешно
Если все NetworkStatus
Observables
завершены, единственный источник все еще может выдавать новый статус, если начинается новое сетевое соединение.
Поскольку индикатор состояния сети является распространенной проблемой, я считаю, что для этого должны быть готовы некоторые операторы RxJava.Но я не достаточно разбираюсь в RxJava, чтобы знать, какие операторы могут быть использованы для обеспечения такого рода функциональности.Может быть, я прошу слишком много от RxJava, и для этого понадобится конкретный код?