Waqas Tahir
07/01/2021, 2:20 PMBen Woodworth
07/01/2021, 2:45 PMWaqas Tahir
07/01/2021, 2:47 PMclass SnapshotListSerializer<T>(private val dataSerializer: KSerializer<T>) :
KSerializer<SnapshotStateList<T>> {
override val descriptor: SerialDescriptor = ListSerializer(dataSerializer).descriptor
override fun serialize(encoder: Encoder, value: SnapshotStateList<T>) {
val list = value as List<T>
encoder.encodeSerializableValue(ListSerializer(dataSerializer), list)
}
override fun deserialize(decoder: Decoder): SnapshotStateList<T> {
val list = mutableStateListOf<T>()
val items = decoder.decodeSerializableValue(ListSerializer(dataSerializer))
list.addAll(items)
return list
}
}
I've written this serializer , that I can specify , do you think it should work ?Ben Woodworth
07/01/2021, 2:50 PMserialize
you probably don't even need to make a separate List variable, just pass value directlyWaqas Tahir
07/01/2021, 3:04 PMWaqas Tahir
07/01/2021, 3:05 PM@Serializable(with = SnapshotListSerializer::class)
val items = mutableStateListOf<ListItem>()
Ben Woodworth
07/01/2021, 4:54 PMWaqas Tahir
07/01/2021, 5:08 PMBen Woodworth
07/01/2021, 5:36 PM