From 9bcd9595da3e9f8d60cabf3dfb03f69cbf3e9264 Mon Sep 17 00:00:00 2001 From: Anoni <66261828+wlrmarl@users.noreply.github.com> Date: Fri, 21 Mar 2025 03:39:17 +0530 Subject: [PATCH] Fixing a Bug in Which Lawnchair crashes due to features value not set. Fix #5337 (#5347) * Fixing a Bug in Which Lawnchair crashes due to features value not set. Bug Description Error: hf.c: Field 'features' is required for type [...] but it was missing from Issues #5337 Cause: The LiveInformation class expects a non-null features field during deserialization, but the incoming data (e.g., from cached preferences or an API response) lacks this field. This crashes the app when parsing older data formats or incomplete responses. Fix Root Issue: Kotlinx Serialization requires fields marked as non-optional (no default value) to be present in the input data. The features and announcements fields were missing defaults, causing deserialization failures. Solution: Add default values to the LiveInformation data class to ensure backward compatibility with legacy data: @Serializable data class LiveInformation( private val version: Int = 2, val announcements: List = emptyList(), // Default empty list val features: Map = emptyMap(), // Default empty map ) { companion object { val default = LiveInformation() // Simplified } } * Fomat Fix and old way of initializing object --- .../ui/preferences/data/liveinfo/model/LiveInformation.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lawnchair/src/app/lawnchair/ui/preferences/data/liveinfo/model/LiveInformation.kt b/lawnchair/src/app/lawnchair/ui/preferences/data/liveinfo/model/LiveInformation.kt index 1865e099e7..ed0c9682fa 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/data/liveinfo/model/LiveInformation.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/data/liveinfo/model/LiveInformation.kt @@ -5,8 +5,8 @@ import kotlinx.serialization.Serializable @Serializable data class LiveInformation( private val version: Int = 2, - val announcements: List, - val features: Map, + val announcements: List = emptyList(), + val features: Map = emptyMap(), ) { companion object {