Skip to content

Commit 004a452

Browse files
Create custom saver for Set<AboutInputField>
There's a crash caused by rememberSaveable { mutableStateOf(AboutInputField.all) } The default saver doesn't support non-primitive types.
1 parent e412241 commit 004a452

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

demo-app/src/main/java/com/gravatar/demoapp/ui/AvatarUpdateTab.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ fun AvatarUpdateTab(modifier: Modifier = Modifier) {
8989
val coroutineScope = rememberCoroutineScope()
9090
var cacheBuster: String? by remember { mutableStateOf(null) }
9191
val scrollState: ScrollState = rememberScrollState()
92-
var aboutFields: Set<AboutInputField> by rememberSaveable { mutableStateOf(AboutInputField.all) }
92+
var aboutFields: Set<AboutInputField> by rememberSaveable(stateSaver = AboutInputFieldSetSaver) {
93+
mutableStateOf(AboutInputField.all)
94+
}
9395
var pickerContentLayout: AvatarPickerContentLayout by rememberSaveable(
9496
stateSaver = AvatarPickerContentLayoutSaver,
9597
) {
@@ -502,6 +504,11 @@ private fun InitialPageDropdown(
502504
}
503505
}
504506

507+
private val AboutInputFieldSetSaver = Saver<Set<AboutInputField>, List<AboutInputField>>(
508+
save = { it.toList() },
509+
restore = { it.toSet() },
510+
)
511+
505512
private val AvatarPickerContentLayoutSaver: Saver<AvatarPickerContentLayout, String> = run {
506513
val horizontalKey = "horizontal"
507514
val verticalKey = "vertical"

0 commit comments

Comments
 (0)