Skip to content

Commit f72e4fc

Browse files
committed
sample: polish
1 parent 3164032 commit f72e4fc

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

sample/app/src/main/java/com/hoc081098/channeleventbus/sample/android/common/SafeSavedStateHandle.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@ class SavedStateHandleKey<T>(
1010
val defaultValue: T,
1111
)
1212

13-
inline fun <T> SavedStateHandle.safeGet(key: SavedStateHandleKey<T>): T = get(key.key) ?: key.defaultValue
13+
inline fun <T> SavedStateHandle.safeGet(key: SavedStateHandleKey<T>): T {
14+
return if (contains(key.key)) {
15+
@Suppress("UNCHECKED_CAST", "RemoveExplicitTypeArguments")
16+
get<T>(key.key) as T
17+
} else {
18+
safeSet(key, key.defaultValue)
19+
key.defaultValue
20+
}
21+
}
1422

1523
inline fun <T> SavedStateHandle.safeSet(key: SavedStateHandleKey<T>, value: T) = set(key.key, value)
1624

0 commit comments

Comments
 (0)