diff --git a/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothTransportConnection.java b/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothTransportConnection.java index bf6b3d69f..20876a814 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothTransportConnection.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothTransportConnection.java @@ -50,7 +50,7 @@ class AndroidBluetoothTransportConnection try { socket.close(); } finally { - connectionLimiter.connectionClosed(this); + connectionLimiter.connectionClosed(this, exception); } } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiter.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiter.java index 993176bb7..1e961d8e2 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiter.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiter.java @@ -45,11 +45,13 @@ interface BluetoothConnectionLimiter { /** * Informs the limiter that the given connection has been closed. + * + * @param exception True if the connection was closed due to an exception. */ - void connectionClosed(DuplexTransportConnection conn); + void connectionClosed(DuplexTransportConnection conn, boolean exception); /** - * Informs the limiter that all connections have been closed. + * Informs the limiter that the Bluetooth adapter has been disabled. */ - void allConnectionsClosed(); + void bluetoothDisabled(); } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiterImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiterImpl.java index d08227834..f2e7ea534 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiterImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothConnectionLimiterImpl.java @@ -126,7 +126,8 @@ class BluetoothConnectionLimiterImpl implements BluetoothConnectionLimiter { } @Override - public void connectionClosed(DuplexTransportConnection conn) { + public void connectionClosed(DuplexTransportConnection conn, + boolean exception) { synchronized (lock) { Iterator it = connections.iterator(); while (it.hasNext()) { @@ -141,10 +142,10 @@ class BluetoothConnectionLimiterImpl implements BluetoothConnectionLimiter { } @Override - public void allConnectionsClosed() { + public void bluetoothDisabled() { synchronized (lock) { connections.clear(); - LOG.info("All connections closed"); + LOG.info("Bluetooth disabled"); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothPlugin.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothPlugin.java index 9187c538b..a5e0c8024 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothPlugin.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/bluetooth/BluetoothPlugin.java @@ -130,7 +130,7 @@ abstract class BluetoothPlugin implements DuplexPlugin, EventListener { void onAdapterDisabled() { LOG.info("Bluetooth disabled"); tryToClose(socket); - connectionLimiter.allConnectionsClosed(); + connectionLimiter.bluetoothDisabled(); callback.transportDisabled(); } diff --git a/bramble-java/src/main/java/org/briarproject/bramble/plugin/bluetooth/JavaBluetoothTransportConnection.java b/bramble-java/src/main/java/org/briarproject/bramble/plugin/bluetooth/JavaBluetoothTransportConnection.java index 319d9af76..12e7630e8 100644 --- a/bramble-java/src/main/java/org/briarproject/bramble/plugin/bluetooth/JavaBluetoothTransportConnection.java +++ b/bramble-java/src/main/java/org/briarproject/bramble/plugin/bluetooth/JavaBluetoothTransportConnection.java @@ -45,7 +45,7 @@ class JavaBluetoothTransportConnection try { stream.close(); } finally { - connectionLimiter.connectionClosed(this); + connectionLimiter.connectionClosed(this, exception); } } }