mirror of https://github.com/KokaKiwi/BarInsta
27 lines
636 B
Kotlin
27 lines
636 B
Kotlin
package awais.instagrabber.utils
|
|
|
|
/**
|
|
* Used as a wrapper for data that is exposed via a LiveData that represents an event.
|
|
*/
|
|
open class Event<out T>(private val content: T) {
|
|
|
|
var hasBeenHandled = false
|
|
private set // Allow external read but not write
|
|
|
|
/**
|
|
* Returns the content and prevents its use again.
|
|
*/
|
|
fun getContentIfNotHandled(): T? {
|
|
return if (hasBeenHandled) {
|
|
null
|
|
} else {
|
|
hasBeenHandled = true
|
|
content
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Returns the content, even if it's already been handled.
|
|
*/
|
|
fun peekContent(): T = content
|
|
} |