Skip to content

Instantly share code, notes, and snippets.

@MaTriXy
Forked from JoseAlcerreca/EventObserver.kt
Created December 10, 2018 17:10
Show Gist options
  • Select an option

  • Save MaTriXy/60f5e6c3a0f3a8c5a848df77a5e8c508 to your computer and use it in GitHub Desktop.

Select an option

Save MaTriXy/60f5e6c3a0f3a8c5a848df77a5e8c508 to your computer and use it in GitHub Desktop.
An Observer for Events, simplifying the pattern of checking if the Event's content has already been handled.
/**
* An [Observer] for [Event]s, simplifying the pattern of checking if the [Event]'s content has
* already been handled.
*
* [onEventUnhandledContent] is *only* called if the [Event]'s contents has not been handled.
*/
class EventObserver<T>(private val onEventUnhandledContent: (T) -> Unit) : Observer<Event<T>> {
override fun onChanged(event: Event<T>?) {
event?.getContentIfNotHandled()?.let { value ->
onEventUnhandledContent(value)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment