Skip to content

Instantly share code, notes, and snippets.

@hwshim0810
Created May 14, 2018 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hwshim0810/9a3f7ce43847e9bdc9e0b1c5adc19a3c to your computer and use it in GitHub Desktop.
Save hwshim0810/9a3f7ce43847e9bdc9e0b1c5adc19a3c to your computer and use it in GitHub Desktop.
onBackPressed with rxjava :: in presenter
private val backButtonSubject: Subject<Long> = BehaviorSubject.createDefault(0L).toSerialized()
private val backButtonSubjectDisposable =
compositeDisposable.add(backButtonSubject.toFlowable(BackpressureStrategy.BUFFER)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) // need compose
.buffer(2, 1)
.map { it[0] to it[1] }
.subscribe({ value ->
if (value.second - value.first < 2000) getView()?.finishView()
else getView()?.showBackButtonToast()
},{ getView()?.showErrorToast() })
)
override fun onBackPressed() = backButtonSubject.onNext(System.currentTimeMillis())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment