Skip to content

Instantly share code, notes, and snippets.

@GrzegorzDyrda
Last active June 28, 2017 14:41
Show Gist options
  • Save GrzegorzDyrda/437843db2f099b5e52ea909855d777e4 to your computer and use it in GitHub Desktop.
Save GrzegorzDyrda/437843db2f099b5e52ea909855d777e4 to your computer and use it in GitHub Desktop.
//
// Poniżej masz wycinek z mojej apki Śpiewnik.
// Zwróć uwagę, że strumień `dialogItemSelected` jest wykorzystany wielokrotnie przez kolejne strumienie.
// Dlatego też jest użyty operator `share` - żeby kolejne subskrypcje nie triggerowały ponownie kodu z flatMapa.
// share() = publish().refCount()
//
val dialogItemSelected: Observable<Int> =
view.onLabelLongPress //Observable<LabelEntity>
.flatMap { label ->
val items = listOf("Edit", "Delete") //Edit=0, Delete=1
RxDialog.itemsDialog(context, items, title = label.name) //Observable<Int>
}
.share()
val editLabel_action =
dialogItemSelected
.filter { it == 0 } //0=Edit
.doOnNext {
TODO("Edit not yet implemented!")
}
val deleteLabel_action =
dialogItemSelected
.filter { it == 1 } //1=Delete
.doOnNext {
TODO("Delete not yet implemented!")
}
//...
editLabel_action.subscribe()
deleteLabel_action.subscribe()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment