Size: a a a

StartAndroid Ru RxJava

2019 October 09

E

Evgeniy in StartAndroid Ru RxJava
Можно в личку пожалуйста
источник

AP

Anton Potekhin in StartAndroid Ru RxJava
Evgeniy
Можно в личку пожалуйста
Android Architecture
Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: https://telegra.ph/Android-Architecture-06-02
https://t.me/Android_Architecture
источник

E

Evgeniy in StartAndroid Ru RxJava
Пасиба
источник
2019 October 10

A

Andrew in StartAndroid Ru RxJava
Коллеги, подскажите, есть Runnable, его надо запустить с таймаутом выполнения в фотовом потоке, по истечению таймаута вызвать обработчик. Как это можно сделать в RxJava?
источник

AP

Anton Potekhin in StartAndroid Ru RxJava
Andrew
Коллеги, подскажите, есть Runnable, его надо запустить с таймаутом выполнения в фотовом потоке, по истечению таймаута вызвать обработчик. Как это можно сделать в RxJava?
Если я правильно понял, то observable().timeout(...).subscribe(ваш код)
источник
2019 October 11

SD

Sergey D in StartAndroid Ru RxJava
подскажите плиз чейн операторов    

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

немогу понять как сделать такой чейн из 2 обсерваблом    (зип видимо тут не подходит)

doa.getListObservable()
.subscribrOn(computation)
.вот тут хз как смержить с новым обсерваблом (данные с сети)  api.getList()
.subscribeOn(io)
.map(  ->  updateDb(it))
.subscribe( -> mutableLiveData.post(it))
источник

ДР

Дмитрий Рубцов 🇷🇺🔥 in StartAndroid Ru RxJava
Sergey D
подскажите плиз чейн операторов    

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

немогу понять как сделать такой чейн из 2 обсерваблом    (зип видимо тут не подходит)

doa.getListObservable()
.subscribrOn(computation)
.вот тут хз как смержить с новым обсерваблом (данные с сети)  api.getList()
.subscribeOn(io)
.map(  ->  updateDb(it))
.subscribe( -> mutableLiveData.post(it))
Тут, наверное, нужен Observable.merge
источник

SD

Sergey D in StartAndroid Ru RxJava
Дмитрий Рубцов 🇷🇺🔥
Тут, наверное, нужен Observable.merge
ок спасибо попробую что нить придумать с мержем
источник
2019 October 13

AK

Aleksey Kuzmenko in StartAndroid Ru RxJava
Sergey D
подскажите плиз чейн операторов    

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

немогу понять как сделать такой чейн из 2 обсерваблом    (зип видимо тут не подходит)

doa.getListObservable()
.subscribrOn(computation)
.вот тут хз как смержить с новым обсерваблом (данные с сети)  api.getList()
.subscribeOn(io)
.map(  ->  updateDb(it))
.subscribe( -> mutableLiveData.post(it))
Просто интересно. А можно пример, когда ты такое используешь?
Сразу в одном чейне 2 раза UI просишь обновляться. Или запрос в сеть идёт на получение данных, никак не связанных с первым отображением на UI?
источник

SD

Sergey D in StartAndroid Ru RxJava
обычный кейс сначала показ данных в списке с бд потом запрос в сеть и опять рефреш списка свежими данными
источник

SD

Sergey D in StartAndroid Ru RxJava
зачем юзеру показывать крутелку и пустой экран если можно показать протухшие данные и крутелку
источник

AK

Aleksey Kuzmenko in StartAndroid Ru RxJava
Sergey D
зачем юзеру показывать крутелку и пустой экран если можно показать протухшие данные и крутелку
Тоже верно. Спасибо за ответ) крутелка на пустом экране действительно бесит юзера)
источник

.

.:T:. in StartAndroid Ru RxJava
Sergey D
подскажите плиз чейн операторов    

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

немогу понять как сделать такой чейн из 2 обсерваблом    (зип видимо тут не подходит)

doa.getListObservable()
.subscribrOn(computation)
.вот тут хз как смержить с новым обсерваблом (данные с сети)  api.getList()
.subscribeOn(io)
.map(  ->  updateDb(it))
.subscribe( -> mutableLiveData.post(it))
Пробуй кэшировать данные через okhttp
источник

.

.:T:. in StartAndroid Ru RxJava
Кажись там можно настроить эту цепочку
источник

.

.:T:. in StartAndroid Ru RxJava
Sergey D
подскажите плиз чейн операторов    

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

немогу понять как сделать такой чейн из 2 обсерваблом    (зип видимо тут не подходит)

doa.getListObservable()
.subscribrOn(computation)
.вот тут хз как смержить с новым обсерваблом (данные с сети)  api.getList()
.subscribeOn(io)
.map(  ->  updateDb(it))
.subscribe( -> mutableLiveData.post(it))
Кстати, а вызвать запрос в сеть через doOnFinally нельзя?
источник
2019 October 14

SD

Sergey D in StartAndroid Ru RxJava
.:T:.
Пробуй кэшировать данные через okhttp
эмм нет, кеш не дает гибкости как бд. как я могу вытащить из кеша с сортировкой и зависистями с др таблиц? и использовать пагинацию? никак кеш это так баловство
источник

AA

Alexey Antonov 🛠 in StartAndroid Ru RxJava
Sergey D
подскажите плиз чейн операторов    

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

немогу понять как сделать такой чейн из 2 обсерваблом    (зип видимо тут не подходит)

doa.getListObservable()
.subscribrOn(computation)
.вот тут хз как смержить с новым обсерваблом (данные с сети)  api.getList()
.subscribeOn(io)
.map(  ->  updateDb(it))
.subscribe( -> mutableLiveData.post(it))
Observable.concat(listOf(observables)) или Observable.concatDelayError(...)
источник

SD

Sergey D in StartAndroid Ru RxJava
Alexey Antonov 🛠
Observable.concat(listOf(observables)) или Observable.concatDelayError(...)
спасибо
источник
2019 October 15

Д

Денис in StartAndroid Ru RxJava
Всем привет.
Адресую разработчикам с опытом в rxjava
Описание ситуации:
Авторизация на сервере у нас с двумя токенами.
В случае 401 я должен запустить логику по обновлению ACCESS_TOKEN с помощью REFRESH_TOKEN (openid authentication вроде бы это правильно называется).
В сеть лазаю с помощью ретрофита в связке с rxjava2.
Примерно так:
@GET("api/v1/drivers/current")
fun getCurrentDriver(): Single<DriverData>

Методы для вылазки в сеть возвращают либо Single, либо Completable.
Идея такова, что я хочу написать одну цепочку по обновлению токенов, и в случае 401 приклеить
её к каждому методу-запросу в сеть
Подскажите, пожалуйста, как правильнее это сделать и вообще правильная ли задумка.

Сейчас в случае 401 ошибки я в интерцепторе пораждаю кастомное исключение, которое обрабатываю в onError каждого похода в сеть.
Вызываю метод по обновлению токенов, который должен возвращать Boolean. И  в случае успешного обновления внутри OnError запускаю рекурсивно этот же метод.
Мало того, что это выглядит не очень, так еще и для того, что бы реактивный метод по обновлению токенов возвращал Boolean приходится блокировать поток с помощью оператора blockingGet

Буду рад советам. Спасибо заранее.
источник
2019 October 17

Д

Денис in StartAndroid Ru RxJava
Всем привет.
Вопрос адресую людям, разбирающимся в rx.
Задача: нужно сделать запрос в сеть.
В случае ошибки запроса, нужно сделать другой запрос. И только в случае успеха выполнения второго запроса,
передернуть первый запрос.
Сделал примерно вот так, но это не работает: вешает приложение, хотя okhttp в логах показывает,
что запрос из fun2 отрабатывает и прилетает 200 от сервера.
Грешу на blockingGet. Но если не блокировать запрос, а пользоваться subscribe({},{}), то происходит гонка,
и логика ломается.
Прошу дать советы, подсказать, ибо мои познания в rx пока достаточно поверхностны.

private fun fun1() {
 var disposable: Disposable? = null
 disposable = interactor.updateDictionary()  
   .doFinally { disposable?.dispose() }
   .subscribe(
     {},
     { error ->        
       if interactor.fun2()
         fun1()        
     }
   )
}

fun fun2(): Boolean {
 var success = false
 try {
   val updateValue = updateFun()
     .blockingGet()    
   success = true    
 } catch (exception: Throwable) {
   Timber.e(exception)
   success = false
 }
 return success
}
источник