From 81d8a9f93f71556b1236fc428ae3b88083a89688 Mon Sep 17 00:00:00 2001 From: andrekir Date: Wed, 18 Sep 2024 19:46:39 -0300 Subject: [PATCH] fix(MeshService): revert `myNodeInfo` to local variable avoids performance issues and simplifies state management as `MyNodeInfo` is only relevant during an active session --- .../java/com/geeksville/mesh/service/MeshService.kt | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index 64d5e3403..2393b6ca3 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -329,7 +329,7 @@ class MeshService : Service(), Logging { /// BEGINNING OF MODEL - FIXME, move elsewhere /// - val myNodeInfo: MyNodeInfo? get() = radioConfigRepository.myNodeInfo.value + private var myNodeInfo: MyNodeInfo? = null private val configTotal by lazy { ConfigProtos.Config.getDescriptor().fields.size } private val moduleTotal by lazy { ModuleConfigProtos.ModuleConfig.getDescriptor().fields.size } @@ -1517,15 +1517,11 @@ class MeshService : Service(), Logging { errormsg("Did not receive a valid config") } else { debug("Installing new node DB") + myNodeInfo = newMyNodeInfo + radioConfigRepository.installNodeDB(newMyNodeInfo!!, newNodes.map { it.toEntity() }) newNodes.clear() // Just to save RAM ;-) - withTimeoutOrNull(timeMillis = 5000) { - while (myNodeInfo == null) { - delay(100) - } - } ?: errormsg("Timeout: installNodeDB failed!") - haveNodeDB = true // we now have nodes from real hardware sendToRadio(newMeshPacketTo(myNodeNum).buildAdminPacket {