Skip to content

Instantly share code, notes, and snippets.

@dinorahto
Created May 1, 2019 17:47
Show Gist options
  • Select an option

  • Save dinorahto/0d5447bd4ccb76b931f2c9d161ffe10e to your computer and use it in GitHub Desktop.

Select an option

Save dinorahto/0d5447bd4ccb76b931f2c9d161ffe10e to your computer and use it in GitHub Desktop.
Base Presenter and Disposable Subscribers
/**
* Created by Dinorah Tovar on 8/21/18
* All presenter should extend from this.
*/
open class BasePresenter : DisposableImpl {
/**
* Save disposables in a list to dispose them once user is navigate out of screen.
*/
private val compositeDisposable = CompositeDisposable()
/**
* Add disposable to CompositeDisposable
*/
override fun safeAdd(disposable: Disposable?) {
disposable?.let {
compositeDisposable.add(disposable)
}
}
/**
* Clear disposables.
*/
override fun safeDispose() {
compositeDisposable.clear()
}
}
/**
* Disposable Impl
*/
interface DisposableImpl {
fun safeAdd(disposable: Disposable?)
fun safeDispose()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment