From 1e95c200e6465f03b282043b15b2f8af2b1304cb Mon Sep 17 00:00:00 2001 From: andrekir Date: Mon, 2 Jan 2023 21:36:35 -0300 Subject: [PATCH] handle missing contactKey digit --- .../java/com/geeksville/mesh/model/UIState.kt | 8 ++++++-- .../com/geeksville/mesh/ui/MessagesFragment.kt | 15 +++------------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/model/UIState.kt b/app/src/main/java/com/geeksville/mesh/model/UIState.kt index 17494fb53..6aa746a4f 100644 --- a/app/src/main/java/com/geeksville/mesh/model/UIState.kt +++ b/app/src/main/java/com/geeksville/mesh/model/UIState.kt @@ -159,8 +159,12 @@ class UIViewModel @Inject constructor( .filter { it.value.port_num == Portnums.PortNum.WAYPOINT_APP_VALUE } }.asLiveData() - fun sendMessage(str: String, channel: Int = 0, dest: String = DataPacket.ID_BROADCAST) { - val p = DataPacket(dest, channel, str) + fun sendMessage(str: String, contactKey: String = "0${DataPacket.ID_BROADCAST}") { + // contactKey: unique contact key filter (channel)+(nodeId) + val channel = contactKey[0].digitToIntOrNull() + val dest = if (channel != null) contactKey.substring(1) else contactKey + + val p = DataPacket(dest, channel ?: 0, str) try { meshService?.send(p) } catch (ex: RemoteException) { diff --git a/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt index 4ae097a70..1bd6b92a3 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt @@ -259,21 +259,12 @@ class MessagesFragment : Fragment(), Logging { binding.messageTitle.text = contactName } - // contactKey: unique contact key filter (channel)+(nodeId) - fun sendMessage(str: String, contactKey: String) { - model.sendMessage( - str, - contactKey[0].digitToInt(), // Channel - contactKey.substring(1) // NodeID - ) - } - binding.sendButton.setOnClickListener { debug("User clicked sendButton") val str = binding.messageInputText.text.toString().trim() if (str.isNotEmpty()) - sendMessage(str, contactKey) + model.sendMessage(str, contactKey) binding.messageInputText.setText("") // blow away the string the user just entered // requireActivity().hideKeyboard() @@ -283,7 +274,7 @@ class MessagesFragment : Fragment(), Logging { debug("did IME action") val str = binding.messageInputText.text.toString().trim() - if (str.isNotEmpty()) sendMessage(str, contactKey) + if (str.isNotEmpty()) model.sendMessage(str, contactKey) binding.messageInputText.setText("") // blow away the string the user just entered // requireActivity().hideKeyboard() @@ -335,7 +326,7 @@ class MessagesFragment : Fragment(), Logging { binding.messageInputText.setText(newText) binding.messageInputText.setSelection(newText.length) } else { - sendMessage(action.message, contactKey) + model.sendMessage(action.message, contactKey) } } binding.quickChatLayout.addView(button)