Try catch parsing UART configuration

This commit is contained in:
Sylwester Zieliński
2023-08-10 09:46:14 +02:00
parent 59a4b67ad4
commit f807e2fb87

View File

@@ -54,13 +54,24 @@ internal class UARTPersistentDataSource @Inject constructor(
) {
fun getConfigurations(): Flow<List<UARTConfiguration>> = 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
}
}