diff --git a/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothPlugin.java b/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothPlugin.java index a5077cc36..77b077119 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothPlugin.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/plugin/bluetooth/AndroidBluetoothPlugin.java @@ -76,7 +76,7 @@ class AndroidBluetoothPlugin extends BluetoothPlugin { private static final Logger LOG = getLogger(AndroidBluetoothPlugin.class.getName()); - private static final int MAX_DEVICE_DISCOVERY_MS = 60_000; + private static final int MAX_DEVICE_DISCOVERY_MS = 30_000; private static final int MAX_SERVICE_DISCOVERY_MS = 15_000; private final AndroidExecutor androidExecutor; @@ -254,6 +254,8 @@ class AndroidBluetoothPlugin extends BluetoothPlugin { return; } + List> discovered = + new ArrayList<>(); Map> byUuid = new HashMap<>(); Map> byAddress = @@ -289,7 +291,7 @@ class AndroidBluetoothPlugin extends BluetoothPlugin { TransportProperties p = new TransportProperties(pair.getFirst()); p.put(PROP_ADDRESS, d.getAddress()); - pair.getSecond().handleDevice(p); + discovered.add(new Pair<>(p, pair.getSecond())); unknown.remove(d); break; } @@ -299,7 +301,7 @@ class AndroidBluetoothPlugin extends BluetoothPlugin { LOG.info("Matched " + scrubMacAddress(d.getAddress()) + " by address"); } - pair.getSecond().handleDevice(pair.getFirst()); + discovered.add(pair); unknown.remove(d); } } @@ -365,7 +367,7 @@ class AndroidBluetoothPlugin extends BluetoothPlugin { TransportProperties p = new TransportProperties(pair.getFirst()); p.put(PROP_ADDRESS, d.getAddress()); - pair.getSecond().handleDevice(p); + discovered.add(new Pair<>(p, pair.getSecond())); break; } } @@ -386,6 +388,13 @@ class AndroidBluetoothPlugin extends BluetoothPlugin { } finally { appContext.unregisterReceiver(receiver); } + + if (LOG.isLoggable(INFO)) { + LOG.info("Discovered " + discovered.size() + " contacts"); + } + for (Pair pair : discovered) { + pair.getSecond().handleDevice(pair.getFirst()); + } } private List getUuids(BluetoothDevice d) {