+static void
+get_properties_cb (DBusMessage *message)
+{
+ DBusMessageIter iter;
+ DBusMessageIter dict_iter;
+ DBusMessageIter dict_entry_iter;
+ DBusError err;
+ gchar *bt_name = NULL;
+ int key_type, array_type, msg_type;
+
+ dbus_error_init(&err);
+ if (dbus_set_error_from_message (&err, message)) {
+ g_warning ("%s: %s", __FUNCTION__, err.message);
+ }
+
+ /* Get msg type */
+ dbus_message_iter_init (message, &iter);
+ msg_type = dbus_message_iter_get_arg_type (&iter);
+ dbus_message_iter_recurse (&iter, &dict_iter);
+
+ while ((array_type = dbus_message_iter_get_arg_type (&dict_iter)) == DBUS_TYPE_DICT_ENTRY) {
+
+ dbus_message_iter_recurse (&dict_iter, &dict_entry_iter);
+
+ while ((key_type = dbus_message_iter_get_arg_type (&dict_entry_iter)) == DBUS_TYPE_STRING) {
+ DBusMessageIter dict_entry_content_iter;
+ char *key;
+ char *value;
+ int dict_entry_type;
+ int dict_entry_content_type;
+
+ dbus_message_iter_get_basic (&dict_entry_iter, &key);
+ dbus_message_iter_next (&dict_entry_iter);
+ dict_entry_type = dbus_message_iter_get_arg_type (&dict_entry_iter);
+ dbus_message_iter_recurse (&dict_entry_iter, &dict_entry_content_iter);
+ dict_entry_content_type = dbus_message_iter_get_arg_type (&dict_entry_content_iter);
+
+ if (dict_entry_content_type == DBUS_TYPE_STRING) {
+ dbus_message_iter_get_basic ( &dict_entry_content_iter, &value );
+
+ if (strcmp (key, "Name") == 0 ) {
+ g_debug ("-------------Name %s", value);
+ bt_name = value;
+ break;
+ }
+ }
+ dbus_message_iter_next (&dict_entry_iter);
+ }
+
+ if (key_type != DBUS_TYPE_INVALID)
+ break;
+
+ dbus_message_iter_next (&dict_iter);
+ }
+
+ /* Save device name */
+ if (bt_name) {
+ g_debug ("Setting the device name %s", bt_name);
+ modest_conf_set_string (modest_runtime_get_conf(),
+ MODEST_CONF_DEVICE_NAME, bt_name,
+ NULL);
+ }
+}
+
+static void
+get_default_adapter_cb (DBusConnection *conn,
+ DBusMessage *message)