diff --git a/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionManager.kt b/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionManager.kt index 83bb2e8b..dd60ea1b 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionManager.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothConnectionManager.kt @@ -36,7 +36,7 @@ class BluetoothConnectionManager( // Component managers private val permissionManager = BluetoothPermissionManager(context) private val connectionTracker = BluetoothConnectionTracker(connectionScope, powerManager) - private val packetBroadcaster = BluetoothPacketBroadcaster(connectionScope, connectionTracker) + private val packetBroadcaster = BluetoothPacketBroadcaster(connectionScope, connectionTracker, fragmentManager) // Delegate for component managers to call back to main manager private val componentDelegate = object : BluetoothConnectionManagerDelegate { diff --git a/app/src/main/java/com/bitchat/android/mesh/BluetoothPacketBroadcaster.kt b/app/src/main/java/com/bitchat/android/mesh/BluetoothPacketBroadcaster.kt index 206865dd..b0dd85a8 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothPacketBroadcaster.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothPacketBroadcaster.kt @@ -16,7 +16,8 @@ import kotlinx.coroutines.launch */ class BluetoothPacketBroadcaster( private val connectionScope: CoroutineScope, - private val connectionTracker: BluetoothConnectionTracker + private val connectionTracker: BluetoothConnectionTracker, + private val fragmentManager: FragmentManager? ) { companion object { @@ -38,7 +39,7 @@ class BluetoothPacketBroadcaster( Log.d(TAG, "Fragmenting packet into ${fragments.size} fragments") connectionScope.launch { fragments.forEach { fragment -> - broadcastSinglePacket(fragment, gattServer, characteristic) + broadcastSinglePacket(RoutedPacket(fragment), gattServer, characteristic) // 20ms delay between fragments (matching iOS/Rust) delay(20) }