Merge "Fix : GATT service changed event is not invoked" into tizen accepted/tizen/unified/20200305.123312 submit/tizen/20200304.063814
authorPyun DoHyun <dh79.pyun@samsung.com>
Wed, 4 Mar 2020 06:28:44 +0000 (06:28 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Wed, 4 Mar 2020 06:28:44 +0000 (06:28 +0000)
bt-oal/bluez_hal/src/bt-hal-event-receiver.c
bt-oal/bluez_hal/src/bt-hal-gatt-client.c

index f763544..e79c661 100644 (file)
@@ -1558,7 +1558,7 @@ static void __bt_hal_device_property_changed_event(GVariant *msg, const char *pa
                } else if (!g_strcmp0(key, "GattConnected")) {
                        gboolean gatt_connected = FALSE;
                        g_variant_get(value, "b", &gatt_connected);
-                       INFO("Device property changed : GattConnected [%d]", gatt_connected);
+                       INFO_C("Device property changed : GattConnected [%d]", gatt_connected);
 
                        char *address = g_malloc0(BT_HAL_ADDRESS_STRING_SIZE);
                        _bt_hal_convert_device_path_to_address(path, address);
index ffef12e..0b213fd 100644 (file)
@@ -125,6 +125,7 @@ typedef struct {
        bt_bdaddr_t bd_addr;    /*remote server address*/
        int conn_id;
        int inst_id;            /*server instance id*/
+       gboolean is_gatt_connected;             /*status for GattConnected signal*/
        GSList *gatt_list_services;
 } hal_gattc_server_info_t;
 
@@ -136,7 +137,7 @@ typedef struct {
        bt_bdaddr_t bd_addr;    /*remote server address*/
        int conn_id;
        int inst_id;
-       gboolean is_gatt_connected;
+       gboolean is_gatt_connected;             /*status for GattConnected signal*/
 } hal_gattc_client_info_t;
 
 /* Linked list of connected GATT client connection */
@@ -361,6 +362,7 @@ bt_status_t btif_gattc_add_connection_info(const bt_bdaddr_t *bd_addr, int conn_
                memcpy(server_info->bd_addr.address, bd_addr->address, BT_HAL_ADDRESS_LENGTH_MAX);
                server_info->conn_id = conn_id;
                server_info->inst_id = server_inst_id;
+               server_info->is_gatt_connected = TRUE;
                hal_gattc_server_info_list = g_slist_append(hal_gattc_server_info_list, server_info);
                DBG("Added server connection info in list");
        }
@@ -3965,7 +3967,7 @@ void _bt_hal_handle_gattc_service_changed_event(gboolean is_added, const char *p
        _bt_hal_convert_addr_string_to_type(ev.bdaddr, address);
        server_info = __bt_find_gatt_conn_info((bt_bdaddr_t *)ev.bdaddr);
        if (server_info == NULL) {
-               ERR("service_info is NULL");
+               ERR("server_info is NULL");
                return;
        }
 
@@ -3975,8 +3977,9 @@ void _bt_hal_handle_gattc_service_changed_event(gboolean is_added, const char *p
                return;
        }
 
-       if (gattc_client->is_gatt_connected == FALSE) {
-               DBG("GattConnected signal is not received yet. Just skip");
+       if (server_info->is_gatt_connected == FALSE && gattc_client->is_gatt_connected == FALSE) {
+               DBG("GattConnected signal is not received yet. Just skip [%d %d]",
+                       server_info->is_gatt_connected, gattc_client->is_gatt_connected);
                return;
        }