From: Lukasz Bardeli Date: Fri, 4 Nov 2016 13:32:56 +0000 (+0100) Subject: [bluetooth-frwk] fix in listFolders and listFilterFields X-Git-Tag: accepted/tizen/3.0/common/20161209.094745~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F50%2F102850%2F2;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git [bluetooth-frwk] fix in listFolders and listFilterFields Change-Id: I4ef2f1416dd94dd5e390c69f15116e354c5c70cf Signed-off-by: Lukasz Bardeli --- diff --git a/bt-api/bt-event-handler.c b/bt-api/bt-event-handler.c index 5a4d843..c6c77b4 100644 --- a/bt-api/bt-event-handler.c +++ b/bt-api/bt-event-handler.c @@ -2089,13 +2089,12 @@ void __bt_map_client_event_filter(GDBusConnection *connection, } else if (strcasecmp(signal_name, BT_MAP_FILTER_FIELDS_COMPLETE) == 0) { BT_DBG("BT_MAP_LIST_FOLDERS_COMPLETE"); - const char *session_id = NULL; GVariant *value; int request_id = 0; int i = 0; bt_map_list_filter_fields_info_t fields_info = {0,}; - g_variant_get(parameters, "(ivsi)", &result, &value, &session_id, &request_id); + g_variant_get(parameters, "(ivi)", &result, &value, &request_id); if (__bt_is_request_id_exist(request_id) == FALSE) { BT_ERR("Different request id!"); diff --git a/bt-service/bt-service-map-client.c b/bt-service/bt-service-map-client.c index 9babf6b..d554e3d 100644 --- a/bt-service/bt-service-map-client.c +++ b/bt-service/bt-service-map-client.c @@ -366,6 +366,40 @@ int _bt_map_client_set_folder(const char* session_id, const char* name) return BLUETOOTH_ERROR_NONE; } +static void __bt_list_folders_cb(GDBusProxy *proxy, + GAsyncResult *res, gpointer user_data) +{ + BT_DBG("+"); + + GError *error = NULL; + GVariant *value, *in_param, *param; + + int result = BLUETOOTH_ERROR_NONE; + int request_id; + int size = 0; + + in_param = (GVariant*) user_data; + g_variant_get(in_param, "(i)", &request_id); + + value = g_dbus_proxy_call_finish(proxy, res, &error); + + if (error) { + BT_ERR("%s", error->message); + g_clear_error(&error); + result = BLUETOOTH_ERROR_INTERNAL; + } + + param = g_variant_new("(iiv)", result, request_id, value); + BT_DBG("RequestID[%d]", request_id); + result = _bt_send_event(BT_MAP_CLIENT_EVENT, + BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE, param); + + g_variant_unref(value); + g_variant_unref(in_param); + + BT_DBG("-"); +} + int _bt_map_client_list_folders(int request_id, GDBusMethodInvocation *context, const char* session_id, int offset, int maxcount) { @@ -401,9 +435,7 @@ int _bt_map_client_list_folders(int request_id, GDBusMethodInvocation *context, result = BLUETOOTH_ERROR_INTERNAL; } else { BT_DBG("message proxy set"); - GVariantBuilder* b = g_variant_builder_new (G_VARIANT_TYPE_ARRAY); - if (offset >= 0) { g_variant_builder_add(b, "{sv}", "Offset", g_variant_new_uint16(offset)); } @@ -414,29 +446,15 @@ int _bt_map_client_list_folders(int request_id, GDBusMethodInvocation *context, GVariant *params = g_variant_new("(@a{sv})", args); g_variant_builder_unref (b); - int* request_id_p = malloc(sizeof(*request_id_p)); - *request_id_p = request_id; - - GVariant *folder_list_var = g_dbus_proxy_call_sync(message_access_proxy, - "ListFolders", params, G_DBUS_CALL_FLAGS_NONE, -1, - NULL, &error); - if (error != NULL) { - BT_ERR("Could not ListFolders: %s\n", error->message); - // TODO return correct error - result = BLUETOOTH_ERROR_INTERNAL; - } else { - if (!folder_list_var) { - BT_ERR("returned ListFolders is null\n"); - result = BLUETOOTH_ERROR_INTERNAL; - } else { - BT_DBG("ListFolders succeed\n"); - - GVariant *param = g_variant_new("(iiv)", result, request_id, folder_list_var); - BT_DBG("RequestID[%d]", request_id); - result = _bt_send_event(BT_MAP_CLIENT_EVENT, - BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE, param); - } - } + GVariant *param = g_variant_new("(i)", request_id); + + g_dbus_proxy_call(message_access_proxy, + "ListFolders", params, + G_DBUS_CALL_FLAGS_NONE, -1, + NULL, + (GAsyncReadyCallback)__bt_list_folders_cb, + (void*)param); + } } @@ -456,12 +474,11 @@ static void __bt_list_filter_fields_cb(GDBusProxy *proxy, int result = BLUETOOTH_ERROR_NONE; int request_id; - char* session_id = NULL; char** fields = NULL; int size = 0; in_param = (GVariant*) user_data; - g_variant_get(in_param, "(is)", &request_id, &session_id); + g_variant_get(in_param, "(i)", &request_id); value = g_dbus_proxy_call_finish(proxy, res, &error); @@ -471,7 +488,7 @@ static void __bt_list_filter_fields_cb(GDBusProxy *proxy, result = BLUETOOTH_ERROR_INTERNAL; } - param = g_variant_new("(ivsi)", result, value, session_id, request_id); + param = g_variant_new("(ivi)", result, value, request_id); _bt_send_event(BT_MAP_CLIENT_EVENT, BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE, param); @@ -513,8 +530,7 @@ int _bt_map_client_list_filter_fields(int request_id, GDBusMethodInvocation *con retv_if(message_proxy == NULL, BLUETOOTH_ERROR_INTERNAL); - GVariant *param = g_variant_new("(is)", - request_id, session_id); + GVariant *param = g_variant_new("(i)", request_id); g_dbus_proxy_call(message_proxy, "ListFilterFields", g_variant_new("()"), @@ -523,6 +539,8 @@ int _bt_map_client_list_filter_fields(int request_id, GDBusMethodInvocation *con (GAsyncReadyCallback)__bt_list_filter_fields_cb, (void*)param); + g_object_unref(message_proxy); + BT_DBG("-"); return BLUETOOTH_ERROR_NONE;