Skip to content

Instantly share code, notes, and snippets.

@Nunocky
Created June 22, 2023 05:43
Show Gist options
  • Save Nunocky/62b4da56d30c973211def5d0c3cfbd1e to your computer and use it in GitHub Desktop.
Save Nunocky/62b4da56d30c973211def5d0c3cfbd1e to your computer and use it in GitHub Desktop.
SavedStateHandleで値の保存と復元が可能な MutableStateFlow
// from https://medium.com/mobile-app-development-publication/saving-stateflow-state-in-viewmodel-2ee9ed9b1a83
class SavableMutableSaveStateFlow<T>(
private val savedStateHandle: SavedStateHandle,
private val key: String,
defaultValue: T
) {
private val _state: MutableStateFlow<T> =
MutableStateFlow(
savedStateHandle.get<T>(key) ?: defaultValue)
var value: T
get() = _state.value
set(value) {
_state.value = value
savedStateHandle.set(key, value)
}
fun asStateFlow(): StateFlow<T> = _state
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment