From bc14b9f179577cb037ce6e9b6e22fea422438565 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Fri, 25 Jul 2025 01:38:53 +0200 Subject: [PATCH] Periodidc broadcast announce (#183) * noise: send nonce * periodidc broadcast announce --- .../android/mesh/BluetoothMeshService.kt | 18 ++++++++++++++++++ .../bitchat/android/mesh/PacketProcessor.kt | 15 ++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt b/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt index 3ad2ae0f..2884b84d 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt @@ -65,6 +65,7 @@ class BluetoothMeshService(private val context: Context) { // Wire up PacketProcessor reference for recursive handling in MessageHandler messageHandler.packetProcessor = packetProcessor + sendPeriodicBroadcastAnnounce() //startPeriodicDebugLogging() } @@ -86,6 +87,22 @@ class BluetoothMeshService(private val context: Context) { } } } + + /** + * Send broadcast announcement every 10 seconds + */ + private fun sendPeriodicBroadcastAnnounce() { + serviceScope.launch { + while (isActive) { + try { + delay(10000) // 10 seconds + sendBroadcastAnnounce() + } catch (e: Exception) { + Log.e(TAG, "Error in periodic broadcast announce: ${e.message}") + } + } + } + } /** * Setup delegate connections between components @@ -604,6 +621,7 @@ class BluetoothMeshService(private val context: Context) { * Send broadcast announce */ fun sendBroadcastAnnounce() { + Log.d(TAG, "Sending broadcast announce") serviceScope.launch { val nickname = delegate?.getNickname() ?: myPeerID diff --git a/app/src/main/java/com/bitchat/android/mesh/PacketProcessor.kt b/app/src/main/java/com/bitchat/android/mesh/PacketProcessor.kt index 7d43391f..fde5ea86 100644 --- a/app/src/main/java/com/bitchat/android/mesh/PacketProcessor.kt +++ b/app/src/main/java/com/bitchat/android/mesh/PacketProcessor.kt @@ -115,21 +115,10 @@ class PacketProcessor(private val myPeerID: String) { /** * Handle Noise handshake message */ - private suspend fun handleNoiseHandshake(routed: RoutedPacket, step: Int) { + private fun handleNoiseHandshake(routed: RoutedPacket, step: Int) { val peerID = routed.peerID ?: "unknown" Log.d(TAG, "Processing Noise handshake step $step from $peerID") - - val success = delegate?.handleNoiseHandshake(routed, step) ?: false - - if (success) { - // Handshake successful, may need to send announce and cached messages - // This will be determined by the Noise implementation when session is established - delay(100) - delegate?.sendAnnouncementToPeer(peerID) - - delay(500) - delegate?.sendCachedMessages(peerID) - } + delegate?.handleNoiseHandshake(routed, step) } /**