Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.33 KB | None | 0 0
  1. disposables.add(toObservableAndError(observableSuccess)
  2.                 // PART 6
  3.                 .doOnError {
  4.                     e -> textView.text = getString(R.string.error_message).plus("\n\n" + e.message)
  5.                 }
  6.                 // PART 6.1
  7.                 .retryWhen {
  8.                     Observables.zip(
  9.                             it.map { it as? Exception ?: throw it },
  10.                             Observable.interval(DELAY_BEFORE_RETRY.duration, DELAY_BEFORE_RETRY.timeUnit))
  11.                             .map { if (it.second >= TIMEOUT.duration) throw it.first }
  12.                 }
  13.                 // Remember PART 4
  14.                 .filter { articleRemoteModel -> articleRemoteModel.createdAt.isBeforeNow }
  15.                 .map { articleRemoteModel -> ArticleMapper().remoteEntityToViewModel(articleRemoteModel) }
  16.                 .map { articleViewModel ->
  17.                     articleViewModel.url + "\n\n" +
  18.                             articleViewModel.title + "\n" +
  19.                             articleViewModel.createdAt + "\n"
  20.                 }
  21.                 // Remember PART 5
  22.                 .subscribeOn(Schedulers.io())
  23.                 .observeOn(AndroidSchedulers.mainThread())
  24.                 .subscribe(
  25.                         { formattedString -> textView.text = formattedString }
  26.                 ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement