Skip to content

Instantly share code, notes, and snippets.

@dinorahtovar
Last active January 10, 2019 23:26
Show Gist options
  • Save dinorahtovar/93183869f89153a8e8014091bd28f009 to your computer and use it in GitHub Desktop.
Save dinorahtovar/93183869f89153a8e8014091bd28f009 to your computer and use it in GitHub Desktop.
/**
* 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