У меня есть очередь файлов для загрузки, которые отправляются Observable, и я хотел бы загружать файлы только при наличии соединения WIFI.У меня есть решение, которое начнет отправлять очередь только тогда, когда установлено соединение WIFI, но в идеале я хотел бы проверить перед отправкой каждого элемента очереди (а затем блокировать его до тех пор, пока не будет установлено соединение WIFI).Таким образом, очередь будет блокировать загружаемые элементы, если Wi-Fi отключен во время загрузки очереди, и возобновит работу, когда она будет восстановлена.
Вот что у меня есть:
ReactiveNetwork.observeNetworkConnectivity(application)
.filter(ConnectivityPredicate.hasState(NetworkInfo.State.CONNECTED))
.filter(ConnectivityPredicate.hasType(ConnectivityManager.TYPE_WIFI))
.take(1)
.toFlowable(BackpressureStrategy.BUFFER)
.flatMap { queueItemAvailable() }
.flatMap { audioSampleUploader.uploadFile(it) }
.subscribeOn(Schedulers.single())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { // SOMETHING HERE }
Поэтому я хотел бы переместить
queueItemAvailable()
на верхний уровень, а затем выполнить (блокировку) проверку сетевого подключения для каждого загружаемого элемента, но я довольно ржавый в своем RxJava, поэтому могуКак понять это?
Любая мудрость очень ценится?