#include "../profile.h"
#endif
-#define ADAPTER_INTERFACE "org.bluez.Adapter1"
-
#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
#ifdef TIZEN_FEATURE_BLUEZ_BATTERY_WATCH
#define DEVICED_DEST "org.tizen.system.deviced"
#include <glib.h>
#include <lib/bluetooth.h>
#include <lib/sdp.h>
+
+#define ADAPTER_INTERFACE "org.bluez.Adapter1"
+
#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
#include <bluetooth/bluetooth.h>
#include <bluetooth/sdp.h>
{
struct bearer_state *state = get_state(device, bdaddr_type);
DBusMessage *reply;
+ bool remove_device = false;
#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
char *dev_name = device->name;
#endif
while (device->disconnects) {
DBusMessage *msg = device->disconnects->data;
+ if (dbus_message_is_method_call(msg, ADAPTER_INTERFACE,
+ "RemoveDevice"))
+ remove_device = true;
+
g_dbus_send_reply(dbus_conn, msg, DBUS_TYPE_INVALID);
device->disconnects = g_slist_remove(device->disconnects, msg);
dbus_message_unref(msg);
g_dbus_emit_property_changed(dbus_conn, device->path,
DEVICE_INTERFACE, "Connected");
+
+ if (remove_device)
+ btd_adapter_remove_device(device->adapter, device);
#else
g_dbus_emit_signal(dbus_conn, device->path,
DEVICE_INTERFACE, "Disconnected",
disconnect_all(device);
}
+ if (device->temporary_timer > 0)
+ g_source_remove(device->temporary_timer);
+
if (device->store_id > 0) {
g_source_remove(device->store_id);
device->store_id = 0;