Articles of наблюдаемый

Получите результат от Observable – Kotin Android

У меня есть метод, который возвращается на Observable следующим образом: fun currentLocation(): Observable<LatLngFix> { if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context) != ConnectionResult.SUCCESS || !context.isLocationPermissionGranted()) { return getDefaultLocation() } // lastKnownLocation returns location or complete without result // in the latter case, return default unknown location return Observable .concat(locationProvider.lastKnownLocation.map { val latLng = LatLngFix(it.latitude, it.longitude) return@map latLng }, getDefaultLocation()) .onErrorResumeNext […]

Объединение данных из разных Observables и выбор различных стратегий получения, в зависимости от доступности данных

У меня есть ситуация, при которой, выбирая объект Item , должно произойти одно из трех: Если элемент отсутствует в кеше (aka is null), загрузите данные из api1 и api2 , объедините данные и верните Observable . Если элемент присутствует в кеше, но какой-то его фрагмент отсутствует, загружают данные из api2 и объединяют его с уже […]

Как я могу использовать модель представления, с sqlite и широковещательным приемником для обновления пользовательского интерфейса?

У меня есть приложение, которое используется для тестирования подключения, оно имеет тревогу 20 минут и должно связаться с сервером с уникальным кодом, и сервер отправляет sms с тем же кодом для подтверждения. У меня все компоненты работают, но я не знаю, как получить уникальный код для автоматического обновления в пользовательском интерфейсе. Тревога записывает каждый запрос […]

Как начать второй наблюдаемый после получения результата от первого наблюдаемого в андроиде?

Я не понимаю, как использовать результат первого наблюдаемого во втором наблюдаемом. -> My First Observable var uploadImgObservable = Observable.create<File> {….} -> My Second Observable var thumbnailObservable = Observable.create<Task<UploadTask.TaskSnapshot>> {…} Теперь я хочу использовать результат uploadImgObservable в thumbnailObservable. Я также попытался использовать flatmap, как было предложено stackoverflow, но я не получил его. Вот как я использовал […]

Обрезающий наблюдательный делегат

Возможно ли в некоторых случаях обходить наблюдаемого делегата? Случай использования: val ls: ArrayList<SomeType> by Delegates.observable(arrayListOf()) { _, _, new -> if (someCondition) { usesList(new) // I want to reset ls to arrayListOf(), but without the invocation of the observable delegate. } }

RxJava обрабатывает несколько обратных вызовов внутри наблюдаемого

У меня есть Observable который имеет несколько обратных вызовов внутри него. Первый выбирает список с сервера, а второй – это обратный вызов изменения элемента, который указывает, изменился ли элемент в списке. Это моя текущая реализация: Flowable.create({ emitter -> val offlineManager = OfflineManager.getInstance(context) offlineManager.listOfflineRegions(object : OfflineManager.ListOfflineRegionsCallback { override fun onList(offlineRegions: Array<OfflineRegion>) { offlineRegionsFetch(offlineRegions, emitter) } override […]

retryWhen () не вызывает то, что находится внутри Observable.just ()

У меня есть тест, в котором я проверяю механизм повтора для авторизации токена. Внутри этого теста я возвращаю null как токен в начале, а затем возвращаю действительный токен, например: whenever(accountManager.getToken()) .thenReturn(null) .thenReturn("some_token") Тогда у меня есть Наблюдение: return Observable.just(accountManager.getToken()) … .retryWhen { retryOnAuthExceptionWithBackoff(it) } Он должен получить токен, отправить его где-нибудь, дождаться ответа, а затем […]

Не удается вызвать оператор () на Observable в Kotlin Android

Я пытаюсь изучить RxJava2 для Android, используя kotlin, и я следую этому хорошему онлайн-учебнику. Сначала я добавил две строки файла gradle.build: compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'io.reactivex.rxjava2:rxjava:2.1.3' Я попытался реализовать шаблон Observable с помощью этого кода: import io.reactivex.Observable class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val observable = Observable.from(arrayOf(1, 2, 3, 4, […]

Может ли kotlin интерфейс кэшировать значение?

Мне очень нравится использование стандартных реализаций для интерфейсов в Котлине, особенно для обычных шаблонов, таких как Observable. Вот мой интерфейс, interface Observable<T>{ // How do I cache this? val observers: MutableList<Observer<T>> get() = LinkedList<>() fun addObserver(o:Observer<T>){ observers.add(o) } fun removeObserver(o:Observer<T>){ observers.remove(o) } fun notifyObservers(u:T){ for (o in observers){ o.update(u) } } } Интерфейс относится к […]

Наблюдаемое свойство, позволяющее добавлять наблюдателей во время выполнения

Через Delegates.observable , Котлин допускает наблюдаемые свойства. Однако мне нужна возможность добавления наблюдателей во время выполнения, как это делает класс Observable Java. Теперь у меня есть следующее: import java.util.* import kotlin.reflect.KProperty import kotlin.reflect.KProperty0 import kotlin.reflect.jvm.isAccessible class MyObservable<T> (var v: T): java.util.Observable() { operator fun getValue(thisRef: Any, prop: KProperty<*>) = v operator fun setValue(thisRef: Any, prop: […]