From 613e4f7ec48901b39cd1941f1a1d1aa7a9677284 Mon Sep 17 00:00:00 2001 From: geeksville Date: Sun, 19 Apr 2020 11:56:06 -0700 Subject: [PATCH] make aidl interface strongly typed --- app/src/main/aidl/com/geeksville/mesh/IMeshService.aidl | 7 +++---- app/src/main/java/com/geeksville/mesh/MainActivity.kt | 2 +- .../main/java/com/geeksville/mesh/service/MeshService.kt | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/aidl/com/geeksville/mesh/IMeshService.aidl b/app/src/main/aidl/com/geeksville/mesh/IMeshService.aidl index 4dc4b188a..877242298 100644 --- a/app/src/main/aidl/com/geeksville/mesh/IMeshService.aidl +++ b/app/src/main/aidl/com/geeksville/mesh/IMeshService.aidl @@ -2,8 +2,7 @@ package com.geeksville.mesh; // Declare any non-default types here with import statements -// import com.geeksville.mesh.DataPacket; - +parcelable DataPacket; parcelable NodeInfo; /** @@ -40,14 +39,14 @@ interface IMeshService { /** Get the IDs of everyone on the mesh. You should also subscribe for NODE_CHANGE broadcasts. */ - NodeInfo[] getNodes(); + List getNodes(); /// This method is only intended for use in our GUI, so the user can set radio options /// It returns a RadioConfig protobuf. byte []getRadioConfig(); /// Return an list of MeshPacket protobuf (byte arrays) which were received while your client app was offline (recent messages only) - List getOldMessages(); + List getOldMessages(); /// This method is only intended for use in our GUI, so the user can set radio options /// It sets a RadioConfig protobuf diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index 0e87fc941..4705cc528 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -596,7 +596,7 @@ class MainActivity : AppCompatActivity(), Logging, registerMeshReceiver() // Init our messages table with the service's record of past text messages - model.messagesState.messages.value = (service.oldMessages as List).map { + model.messagesState.messages.value = service.oldMessages.map { TextMessage(it) } 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 0995fa4cb..1e250ec7e 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -1056,8 +1056,8 @@ class MeshService : Service(), Logging { this@MeshService.radioConfig = MeshProtos.RadioConfig.parseFrom(payload) } - override fun getNodes(): Array = toRemoteExceptions { - val r = nodeDBbyID.values.toTypedArray() + override fun getNodes(): MutableList = toRemoteExceptions { + val r = nodeDBbyID.values.toMutableList() info("in getOnline, count=${r.size}") // return arrayOf("+16508675309") r