Skip to content

Instantly share code, notes, and snippets.

@Flywith24
Created February 27, 2020 05:26
Show Gist options
  • Save Flywith24/41b673fe29741aee2e9e3775fd608ed3 to your computer and use it in GitHub Desktop.
Save Flywith24/41b673fe29741aee2e9e3775fd608ed3 to your computer and use it in GitHub Desktop.
LiveData粘性事件包装
package com.whdx.library_login.bean
/**
* @author yyz (杨云召)
* @date 2020/2/27
* time 11:34
* description
* 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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment