-
Переведите сетевой запрос с
retrofit.Call
на RX цепочку. Для этого подключите Retrofit адаптер, поменяйте возвращаемые типы функций -
Поменяйте логику в
CatsViewModel.kt
с колбеков на RX. Логику обработки успеха/ошибки из коллбека необходимо перенести в терминальные коллбеки RX цепочки. Не забудьте очистить подписки когдаViewModel
уничтожается -
Реализуйте функцию
otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFact
, так, чтобы она возвращалаFact
со случайной строкой из массива строкR.array.local_cat_facts
обернутую в подходящий стрим(Flowable
/Single
/Observable
и т.п) -
Реализуйте функцию
otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFactPeriodically
так, чтобы она эмитилаFact
со случайной строкой из массива строкR.array.local_cat_facts
каждые 2000 миллисекунд. Если вновь заэмиченный Fact совпадает с предыдущим - пропускаем элемент. -
Реализуйте функцию
otus.homework.reactivecats.CatsViewModel#getFacts
следующим образом: каждые 2 секунды идем в сеть за новым фактом, если сетевой запрос завершился неуспешно, то в качестве фоллбека идем за фактом в уже реализованныйotus.homework.reactivecats.LocalCatFactsGenerator#generateCatFact
.
eugeniydak / homework_rxjava Goto Github PK
View Code? Open in Web Editor NEWThis project forked from otus-android/homework_06