Articles of rx java

Заполненная модель с дополнительным ответом с использованием Rx

Я новичок в Rx java, и моя текущая задача – у меня есть 2 запроса @GET(NEWS_LIST) fun getNews(): Observable<NewsResponse> @GET fun getNewsImage(@Url url: String): Observable<NewsImage> и я бы хотел добавить URL-адрес изображения к 1-й модели ответа со 2-го. Второй зависит от 1-го. Как можно объединить их в поток Rx? Итак, 1-й запрос возвращает мне список […]

RxJava как создать наблюдаемый из подписки

Я ищу способ создания Observable после обработки результата в subscribe . Учитывая, что у меня есть это Observable из productRepo.list() которое является Retrofit Observable<Response<ProductResponse>> . productRepo .list() .retry(3) .subscribe { response -> if (response.isSuccessful) { response.body().apply { cache.saveProducts(data) } } } Целью этого является сохранение результата в локальном cache БД. Это плюс еще один очень […]

Проблемы с Observable.zip

Я загружаю сообщения с двух страниц из Facebook с помощью Retrofit и RxJava. Я хочу загрузить их Observable.zip, но я получаю onError : An operation is not implemented: not implemented . Мой код: var fb1 = dataManager.getPosts(ApplicationConstants.FACEBOOK_PAGE_1, ApplicationConstants.FACEBOOK_APP_TOKEN, "70") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) var fb2 = dataManager.getPosts(ApplicationConstants.FACEBOOK_PAGE_2, ApplicationConstants.FACEBOOK_APP_TOKEN, "70") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) val observableZip : Observable<PostList> = Observable.zip(fb1,fb2, […]

Вызывается: rx.exceptions.MissingBackpressureException

У меня другая проблема. На этот раз я столкнулся с этой ошибкой Caused by: rx.exceptions.MissingBackpressureException при выполнении этого кода: class UpdateHelper { val numberOfFileToUpdate: PublishSubject<Int> init { numberOfFileToUpdate = PublishSubject.create() } public fun startUpdate(): Observable<Int>{ return getProducts().flatMap { products: ArrayList<Product> -> numberOfFileToUpdate.onNext(products.size) return@flatMap saveRows(products) } } private fun getProducts(): Observable<ArrayList<Product>> { return Observable.create { var […]

Подписка на несколько видов на A views onclick и изменение видимости RxAndroid

Я новичок в использовании RxJava и до сих пор знаком с большим количеством концепций. Попытка использовать его в проекте и то, что я хочу сделать, – подписаться на событие щелчка, чтобы изменить видимость другого представления. Вот мой суд, который работает. RxView.clicks(info_overlay).map { _ -> View.GONE }.subscribe { AppCache().hasSeenInfoScreen = true info_overlay_child_take_a_helfie.visibility = it info_overlay_child_subscription.visibility = […]

Обработка Nullable Type в RxJava с Kotlin

При использовании RxJava2 в Java у меня есть преимущество в том, что фильтрация map() автоматически выбрала нулевые значения. Однако с нулевыми типами в Котлине я делаю что-то вроде этого: val loadConferencesSingle = service.getConferences() .map { it.conferences ?: listOf<Conference>() } Вызов service.getConferences() в этом случае представляет собой Single-излучение ConferecesResponse которое выглядит как data class ConferencesResponse(val conferences: […]

Как закрепить несколько наблюдаемых в языке Kotlin с помощью RxAndroid

Все! У меня есть некоторые проблемы. Я начинаю работать в RxJava / RxKotlin / RxAndroid и не понимаю некоторых функций. Например: import rus.pifpaf.client.data.catalog.models.Category import rus.pifpaf.client.data.main.MainRepository import rus.pifpaf.client.data.main.models.FrontDataModel import rus.pifpaf.client.data.product.models.Product import rx.Observable import rx.Single import rx.lang.kotlin.observable import java.util.* class MainInteractor { private var repository: MainRepository = MainRepository() fun getFrontData() { val cats = getCategories() val day […]

Для функции Kotlin, используемой в качестве выражения, существует ли краткий способ работы и возврата значения?

В Котлине окончательный оператор функции можно интерпретировать как возвращаемое значение. Можно ли упростить ситуацию, подобную приведенному ниже примеру, менее подробно? { text: String -> val validated = validateText(text) if (validated) { actOnValidation() } validated } Конкретный случай, когда я хотел бы сделать это, приведен ниже в примере с использованием RxJava – даже если есть лучший […]

Раздвижное окно RxJava

У меня есть наблюдаемое значение, которое испускает данные, и я хочу сначала загрузить его в течение трех секунд, а затем после первого буфера должно быть скользящее значение в одну секунду. Это больше похоже на buffer(timespan,unit,skip) где пропускается время. Образец: ObservableData,TimeStamp : (5,1),(10,1.5),(30,2.8),(40,3.2),(60,3.8),(90,4.2) ExpectedList : {5,10,30},{10,30,40,60},{30,40,60,90} Я могу добиться этого, создав пользовательский оператор. Я просто хочу […]

rx.Scheduler не может быть предоставлен без @ Provides- или @ Produces-аннотированного метода

У меня есть две пользовательские аннотации @Qualifier @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) annotation class IOScheduler а также @Qualifier @kotlin.annotation.Retention(AnnotationRetention.RUNTIME) annotation class UIScheduler Я использую их в своем модуле @Module class UiModule { @Provides @UIScheduler fun provideUiScheduler(): Scheduler = AndroidSchedulers.mainThread() @Provides @IOScheduler fun provideIOScheduler(): Scheduler = Schedulers.io() } Конечно, модуль добавляется к моему компоненту, и когда я пытаюсь ввести их, […]