Skip to content

Instantly share code, notes, and snippets.

@leandroBorgesFerreira
Last active December 18, 2018 14:07
Show Gist options
  • Select an option

  • Save leandroBorgesFerreira/20f6243cbecca412e67399399da694ea to your computer and use it in GitHub Desktop.

Select an option

Save leandroBorgesFerreira/20f6243cbecca412e67399399da694ea to your computer and use it in GitHub Desktop.
class RepositoryPresenter<F>(
private val repositoryUseCase: RepositoryUseCase<F>,
private val view: RepositoriesView,
private val cancelableList: MutableList<Disposable> = mutableListOf()
) : Async<F> by repositoryUseCase {
fun drawRepositories() : Kind<F, Unit> {
val (kind, disposable) = bindingCancellable {
val repos = repositoryUseCase.getRepositories().handleError {
view.showGenericError()
emptyList()
}.bind()
view.drawRepositories(repos)
}
cancelableList.add(disposable)
return kind
}
fun onPause() {
cancelableList.forEach { disposable -> disposable.invoke() }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment