feat(model): Make NetworkDeviceHardware robust to unknown JSON keys (#3880)

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit is contained in:
James Rich 2025-12-02 14:34:39 -06:00 committed by GitHub
parent 7e3d5c0619
commit 0c127bc6b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 0 deletions

View file

@ -35,6 +35,7 @@ dependencies {
implementation(projects.core.strings)
implementation(libs.androidx.annotation)
implementation(libs.kotlinx.serialization.json)
implementation(libs.timber)
implementation(libs.zxing.android.embedded) { isTransitive = false }
implementation(libs.zxing.core)

View file

@ -17,10 +17,14 @@
package org.meshtastic.core.model
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonIgnoreUnknownKeys
@Serializable
@OptIn(ExperimentalSerializationApi::class)
@JsonIgnoreUnknownKeys
data class NetworkDeviceHardware(
@SerialName("activelySupported") val activelySupported: Boolean = false,
@SerialName("architecture") val architecture: String = "",
@ -30,9 +34,11 @@ data class NetworkDeviceHardware(
@SerialName("hwModel") val hwModel: Int = 0,
@SerialName("hwModelSlug") val hwModelSlug: String = "",
@SerialName("images") val images: List<String>? = null,
@SerialName("key") val key: String? = null,
@SerialName("partitionScheme") val partitionScheme: String? = null,
@SerialName("platformioTarget") val platformioTarget: String = "",
@SerialName("requiresDfu") val requiresDfu: Boolean? = null,
@SerialName("supportLevel") val supportLevel: Int? = null,
@SerialName("tags") val tags: List<String>? = null,
@SerialName("variant") val variant: String? = null,
)