diff --git a/android/gatt.c b/android/gatt.c
index 89748d2..ae310f7 100644
--- a/android/gatt.c
+++ b/android/gatt.c
return true;
}
+static void gatt_unpaired_cb(const bdaddr_t *addr, uint8_t type)
+{
+ struct gatt_device *dev;
+ char address[18];
+
+ dev = find_device_by_addr(addr);
+ if (!dev)
+ return;
+
+ if (dev->bdaddr_type != type)
+ return;
+
+ ba2str(addr, address);
+ DBG("Unpaired device %s", address);
+
+ queue_remove(gatt_devices, dev);
+ destroy_device(dev);
+}
+
bool bt_gatt_register(struct ipc *ipc, const bdaddr_t *addr)
{
DBG("");
+ if (!bt_unpaired_register(gatt_unpaired_cb)) {
+ error("gatt: Could not register unpaired callback");
+ return false;
+ }
+
if (!start_listening())
return false;
crypto = NULL;
bt_le_unregister();
+ bt_unpaired_unregister(gatt_unpaired_cb);
}
unsigned int bt_gatt_register_app(const char *uuid, gatt_type_t type,