Change the adapter state check logic
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-adapter.c
index 55d58e0..76ab25e 100644 (file)
@@ -71,91 +71,25 @@ static int __bt_fill_device_list(GArray *out_param2, GPtrArray **dev_list)
        return BLUETOOTH_ERROR_NONE;
 }
 
-static gboolean __bt_get_check_service_available()
+BT_EXPORT_API int bluetooth_check_adapter(void)
 {
-       GDBusConnection *service_gconn;
-       GDBusProxy *proxy;
-       GError *err = NULL;
-       GArray *in_param5 = NULL;
-       GVariant *ret, *param1, *param2, *param3, *param4, *param5;
-
-       service_gconn = _bt_get_system_common_conn();
-       if (!service_gconn)
-               return FALSE;
-
-       /* G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START
-        * method call will be failed not auto activation
-        * if service is unavailble. */
-       proxy = g_dbus_proxy_new_sync(service_gconn,
-                       G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, NULL,
-                       BT_DBUS_NAME,
-                       BT_SERVICE_PATH,
-                       BT_DBUS_NAME,
-                       NULL, &err);
-       if (!proxy) {
-               if (err) {
-                        BT_ERR("Unable to create proxy: %s", err->message);
-                        g_clear_error(&err);
-               }
-
-               return FALSE;
-       }
+#ifndef TIZEN_BLUEDROID_PORTING
+       int result;
+       bluetooth_adapter_state_t state = BLUETOOTH_ADAPTER_DISABLED;
 
        BT_INIT_PARAMS();
        BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
 
-       in_param5 = g_array_new(TRUE, TRUE, sizeof(gchar));
-
-       param1 = g_variant_new_from_data((const GVariantType *)"ay",
-                       in_param1->data, in_param1->len,
-                       TRUE, NULL, NULL);
-       param2 = g_variant_new_from_data((const GVariantType *)"ay",
-                       in_param2->data, in_param2->len,
-                       TRUE, NULL, NULL);
-       param3 = g_variant_new_from_data((const GVariantType *)"ay",
-                       in_param3->data, in_param3->len,
-                       TRUE, NULL, NULL);
-       param4 = g_variant_new_from_data((const GVariantType *)"ay",
-                       in_param4->data, in_param4->len,
-                       TRUE, NULL, NULL);
-       param5 = g_variant_new_from_data((const GVariantType *)"ay",
-                       in_param5->data, in_param5->len,
-                       TRUE, NULL, NULL);
-
-       ret = g_dbus_proxy_call_sync(proxy, "service_request",
-                       g_variant_new("(iii@ay@ay@ay@ay@ay)",
-                                       BT_BLUEZ_SERVICE, BT_CHECK_AVAILABLE,
-                                       BT_SYNC_REQ, param1,
-                                       param2, param3,
-                                       param4, param5),
-                       G_DBUS_CALL_FLAGS_NONE, -1,
-                       NULL, &err);
-
-       BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
-       g_array_free(in_param5, TRUE);
+       result = _bt_send_request_not_autostart(BT_BLUEZ_SERVICE, BT_CHECK_ADAPTER,
+               in_param1, in_param2, in_param3, in_param4, &out_param);
 
-       if (ret == NULL) {
-               if (err) {
-                       BT_ERR("D-Bus API failure: errCode[%x], message[%s]",
-                                       err->code, err->message);
-                       g_clear_error(&err);
-               }
-               BT_ERR("bt-service is unavailable");
-               return FALSE;
+       if (result == BLUETOOTH_ERROR_NONE) {
+               state = g_array_index(out_param, bluetooth_adapter_state_t, 0);
        }
 
-       return TRUE;
-}
+       BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
 
-BT_EXPORT_API int bluetooth_check_adapter(void)
-{
-#ifndef TIZEN_BLUEDROID_PORTING
-       int ret;
-       gboolean is_service_avail;
-       ret = _bt_get_adapter_path(_bt_get_system_common_conn(), NULL);
-       is_service_avail = __bt_get_check_service_available();
-       return (ret == BLUETOOTH_ERROR_NONE && is_service_avail) ?
-                       BLUETOOTH_ADAPTER_ENABLED : BLUETOOTH_ADAPTER_DISABLED;
+       return state ? BLUETOOTH_ADAPTER_ENABLED : BLUETOOTH_ADAPTER_DISABLED;
 #else
        int value = VCONFKEY_BT_STATUS_OFF;