return;
}
- if (!device->gatt_connected) {
- DBG("GATT connection process is still ongoing");
+ if (!device->le_state.svc_resolved) {
+ DBG("GATT service discovery process is still ongoing");
return;
}
dev->eir_uuids = NULL;
if (dev->pending_paired) {
+#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
+ DBG("service resolved. report it");
+#endif
g_dbus_emit_property_changed(dbus_conn, dev->path,
DEVICE_INTERFACE, "Paired");
dev->pending_paired = false;
return;
}
+ if (device->bonding_io) {
+ DBG("current gatt connection is for LE bond");
+ device_close_le_bonding_io(device);
+ return;
+ }
+
if (device->gatt_connected == connected) {
error("same state change for gatt_connected : %d", connected);
return;
load_services(device, uuids);
/* Discovered services restored from storage */
+#ifndef TIZEN_FEATURE_BLUEZ_MODIFY
device->bredr_state.svc_resolved = true;
+#else
+ DBG("Discovered services restored from storage.. addr type (%d)", device->bdaddr_type);
+ if (device->bdaddr_type == BDADDR_BREDR)
+ device->bredr_state.svc_resolved = true;
+ else
+ device->le_state.svc_resolved = true;
+#endif
}
/* Load device id */
DBG("Just overwrite Link key");
} else if (bdaddr_type == BDADDR_LE_RANDOM ||
bdaddr_type == BDADDR_LE_PUBLIC) {
- DBG("Long Term Key has been changed. Report it");
- g_dbus_emit_property_changed(dbus_conn, device->path,
- DEVICE_INTERFACE, "Paired");
+ DBG("Long Term Key has been changed");
+ if (device->le_state.svc_resolved) {
+ DBG("LE service resolved. Report it");
+ g_dbus_emit_property_changed(dbus_conn, device->path,
+ DEVICE_INTERFACE, "Paired");
+ device->pending_paired = false;
+ } else {
+ DBG("LE services not resolved yet. Wait");
+ device->pending_paired = true;
+ }
}
#endif /* TIZEN_FEATURE_BLUEZ_MODIFY */
return;