Слияние наблюдаемого на лету - PullRequest
0 голосов
/ 12 сентября 2018

Мой пользовательский интерфейс может инициировать несколько сетевых подключений, и я хочу предоставить индикатор состояния, независимо от того, является ли соединение Loading, Completed или Error.

Каждое сетевое подключение будет иметь ObservableNetworkStatus.Так как одновременно может быть запущено много сетевых подключений, я хотел просто merge их всех, чтобы пользовательский интерфейс мог получить один источник NetworkStatus.

Этот один источник должен вести себя так:

  • Если все сетевые соединения завершены без ошибок, источник выдает Complete.

  • Как только будет запущено новое сетевое соединение,источник должен выдавать статус Loading.

  • Если запущено несколько сетевых подключений и некоторые из них завершены, а некоторые загружаются, то должен быть выдан статус Loading.Состояние Loading изменяется только в том случае, если все сетевые подключения завершены.

  • Событие Error должно отправляться сразу же после его возникновения и переопределяться только после сбоя сетевого подключения.попытался успешно

  • Если все NetworkStatus Observables завершены, единственный источник все еще может выдавать новый статус, если начинается новое сетевое соединение.

Поскольку индикатор состояния сети является распространенной проблемой, я считаю, что для этого должны быть готовы некоторые операторы RxJava.Но я не достаточно разбираюсь в RxJava, чтобы знать, какие операторы могут быть использованы для обеспечения такого рода функциональности.Может быть, я прошу слишком много от RxJava, и для этого понадобится конкретный код?

...