Как добавить элемент в одноразовый список наблюдаемых с помощью RxAndroid / Retrofit - PullRequest
0 голосов
/ 03 июля 2019

Я звоню в API и возвращаю список пользовательских объектов (Observable<ArrayList<Pin>>). Прежде чем отправить список обратно подписчику, я хочу добавить объект, который я создаю локально и отдельно от вызова API. Вот мой код:

        val requestInterface = Retrofit.Builder()
            .baseUrl(context.resources.getString(R.string.ulr_pins))
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build().create(PinsService::class.java)

        disposable.add(requestInterface.getPins()
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            //How do I add a custom Pin object to the list retrieved in requestInterface.getPins before I send it to the callback?
            .subscribe(callback))

1 Ответ

1 голос
/ 03 июля 2019

используйте map операцию, вы можете преобразовать ваши данные во что-нибудь map:

disposable.add(requestInterface.getPins()
        .map{ it ->
            it.add(customPinObject)
            it
        }
        .observeOn(AndroidSchedulers.mainThread())
        .subscribeOn(Schedulers.io())
        .subscribe(callback))
...