From f807e2fb87565773d754957bf057bf3ceb2ea721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylwester=20Zieli=C5=84ski?= Date: Thu, 10 Aug 2023 09:46:14 +0200 Subject: [PATCH] Try catch parsing UART configuration --- .../uart/data/UARTPersistentDataSource.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTPersistentDataSource.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTPersistentDataSource.kt index b84325fc..b23f83bf 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTPersistentDataSource.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTPersistentDataSource.kt @@ -54,13 +54,24 @@ internal class UARTPersistentDataSource @Inject constructor( ) { fun getConfigurations(): Flow> = configurationsDao.load().map { - it.map { - val xml: String = it.xml + it.mapNotNull { it.toDomain() } + } + + private fun Configuration.toDomain(): UARTConfiguration? { + return try { + val xml: String = xml val format = Format(HyphenStyle()) val serializer: Serializer = Persister(format) val configuration = serializer.read(XmlConfiguration::class.java, xml) - UARTConfiguration(it._id, configuration.name ?: "Unknown", createMacro(configuration.commands)) + UARTConfiguration( + _id, + configuration.name ?: "Unknown", + createMacro(configuration.commands) + ) + } catch (t: Throwable) { + t.printStackTrace() + null } }