diff --git a/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionTracker.kt b/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionTracker.kt index 5e91507e..57573fcc 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionTracker.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionTracker.kt @@ -88,6 +88,7 @@ class BluetoothConnectionTracker( * Add a device connection */ fun addDeviceConnection(deviceAddress: String, deviceConn: DeviceConnection) { + Log.d(TAG, "Tracker: Adding device connection for $deviceAddress") connectedDevices[deviceAddress] = deviceConn pendingConnections.remove(deviceAddress) } @@ -180,16 +181,19 @@ class BluetoothConnectionTracker( * Add a pending connection attempt */ fun addPendingConnection(deviceAddress: String): Boolean { + Log.d(TAG, "Tracker: Adding pending connection for $deviceAddress") synchronized(pendingConnections) { // Double-check inside synchronized block val currentAttempt = pendingConnections[deviceAddress] if (currentAttempt != null && !currentAttempt.isExpired() && !currentAttempt.shouldRetry()) { + Log.d(TAG, "Tracker: Connection attempt already in progress for $deviceAddress") return false } // Update connection attempt atomically val attempts = (currentAttempt?.attempts ?: 0) + 1 pendingConnections[deviceAddress] = ConnectionAttempt(attempts) + Log.d(TAG, "Tracker: Added pending connection for $deviceAddress (attempts: $attempts)") return true } } @@ -318,7 +322,7 @@ class BluetoothConnectionTracker( appendLine("Connected Devices: ${connectedDevices.size} / ${powerManager.getMaxConnections()}") connectedDevices.forEach { (address, deviceConn) -> val age = (System.currentTimeMillis() - deviceConn.connectedAt) / 1000 - appendLine(" - $address (${if (deviceConn.isClient) "client" else "server"}, ${age}s, RSSI: ${deviceConn.rssi})") + appendLine(" - $address (we're ${if (deviceConn.isClient) "client" else "server"}, ${age}s, RSSI: ${deviceConn.rssi})") } appendLine() appendLine("Subscribed Devices (server mode): ${subscribedDevices.size}") diff --git a/app/src/main/java/com/bitchat/android/mesh/BluetoothGattClientManager.kt b/app/src/main/java/com/bitchat/android/mesh/BluetoothGattClientManager.kt index 310c00e5..da4c1c9c 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothGattClientManager.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothGattClientManager.kt @@ -192,6 +192,7 @@ class BluetoothGattClientManager( scanCallback = object : ScanCallback() { override fun onScanResult(callbackType: Int, result: ScanResult) { + Log.d(TAG, "Scan result received: ${result.device.address}") handleScanResult(result) } @@ -276,6 +277,8 @@ class BluetoothGattClientManager( if (!hasOurService) { return } + + Log.d(TAG, "Received scan result from $deviceAddress - already connected: ${connectionTracker.isDeviceConnected(deviceAddress)}") // Store RSSI from scan results for later use (especially for server connections) connectionTracker.updateScanRSSI(deviceAddress, rssi) @@ -314,7 +317,7 @@ class BluetoothGattClientManager( @Suppress("DEPRECATION") private fun connectToDevice(device: BluetoothDevice, rssi: Int) { if (!permissionManager.hasBluetoothPermissions()) return - + val deviceAddress = device.address Log.i(TAG, "Connecting to bitchat device: $deviceAddress") 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 eb928fde..467aed39 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt @@ -64,7 +64,7 @@ class BluetoothMeshService(private val context: Context) { // Wire up PacketProcessor reference for recursive handling in MessageHandler messageHandler.packetProcessor = packetProcessor - startPeriodicDebugLogging() + // startPeriodicDebugLogging() } /** @@ -120,7 +120,7 @@ class BluetoothMeshService(private val context: Context) { delay(100) sendAnnouncementToPeer(peerID) - delay(500) + delay(1000) storeForwardManager.sendCachedMessages(peerID) } }