diff --git a/android/gatt.c b/android/gatt.c
index 7db0418..da6bbf0 100644
--- a/android/gatt.c
+++ b/android/gatt.c
return ret;
}
+static void remove_autoconnect_device(struct gatt_device *dev)
+{
+ bt_auto_connect_remove(&dev->bdaddr);
+
+ if (dev->state == DEVICE_CONNECT_INIT)
+ device_set_state(dev, DEVICE_DISCONNECTED);
+
+ device_unref(dev);
+}
+
static void clear_autoconnect_devices(void *data, void *user_data)
{
struct gatt_device *dev = data;
if (queue_remove(dev->autoconnect_apps, user_data))
- if (queue_isempty(dev->autoconnect_apps)) {
- bt_auto_connect_remove(&dev->bdaddr);
+ if (queue_isempty(dev->autoconnect_apps))
+ remove_autoconnect_device(dev);
- if (dev->state == DEVICE_CONNECT_INIT)
- device_set_state(dev, DEVICE_DISCONNECTED);
- device_unref(dev);
- }
}
static uint8_t unregister_app(int client_if)
queue_remove(dev->autoconnect_apps, INT_TO_PTR(id));
- if (queue_isempty(dev->autoconnect_apps)) {
- bt_auto_connect_remove(addr);
-
- if (dev->state == DEVICE_CONNECT_INIT)
- device_set_state(dev, DEVICE_DISCONNECTED);
+ if (queue_isempty(dev->autoconnect_apps))
+ remove_autoconnect_device(dev);
device_unref(dev);
- }
}