int _bt_core_service_request_adapter(int service_function)
{
+ /* busact module is not in platform */
+#ifndef TIZEN_FEATURE_BUSACT
+ return BLUETOOTH_ERROR_NONE;
+#else
int ret = -1;
GArray *in_param1 = NULL;
BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
return ret;
+#endif
}
static gboolean __bt_core_check_the_adapter_path(GDBusConnection *conn)
gboolean _bt_core_recover_adapter(void)
{
int ret;
+#ifdef TIZEN_FEATURE_BUSACT
int ret_le;
-
+#endif
BT_INFO_C("Recover bt adapter");
_bt_set_flightmode_request(FALSE);
ret = _bt_disable_adapter();
if (ret < 0)
BT_ERR("_bt_disable_adapter() failed");
+
+/* In platform, don't seperate BR/EDR and LE status */
+#if 0
ret_le = _bt_disable_adapter_le();
if (ret_le < 0)
BT_ERR("_bt_disable_adapter_le() failed");
-
+#endif
return TRUE;
}
static gboolean __bt_core_recovery_cb(gpointer data)
{
int ret = 0;
+#ifdef TIZEN_FEATURE_BUSACT
gboolean is_request_failed = FALSE;
static gboolean is_first_failure = TRUE;
+#endif
BT_DBG("+");
+#ifdef TIZEN_FEATURE_BUSACT
if (_bt_core_get_bt_status(BT_RECOVERY_MODE) == 1) {
ret = _bt_core_service_request_adapter(BT_ENABLE_ADAPTER);
if (ret < 0)
}
} else
is_first_failure = TRUE;
+#endif
if (_bt_core_get_bt_status(BT_RECOVERY_MODE) == 1) {
_bt_core_set_bt_status(BT_RECOVERY_MODE, 0);
if (ret < 0)
BT_ERR("_bt_enable_adapter() failed");
}
+
+#if 0
if (_bt_core_get_bt_le_status(BT_RECOVERY_MODE) == 1) {
_bt_core_set_bt_le_status(BT_RECOVERY_MODE, 0);
ret = _bt_enable_adapter_le();
if (ret < 0)
BT_ERR("_bt_enable_adapter_le() failed");
}
-
+#endif
is_recovery_mode = FALSE;
BT_DBG("-");
gboolean flight_mode_status;
static int timer_id = -1;
- BT_DBG("");
+ BT_DBG("is_recovery_mode: %d", is_recovery_mode);
__bt_core_set_status(BT_DEACTIVATED);
__bt_core_set_le_status(BT_LE_DEACTIVATED);
static GDBusProxy *core_proxy = NULL;
static guint timer_id = 0;
static guint le_timer_id = 0;
+static gboolean is_recovery_mode;
static uint status_reg_id;
_bt_destroy_agent(adapter_agent);
adapter_agent = NULL;
- _bt_reliable_terminate_service(NULL);
+ if (is_recovery_mode == TRUE) {
+ /* Send disabled event */
+ _bt_set_disabled(BLUETOOTH_ERROR_NONE);
+
+ /* Will recover BT by bt-core, so set the mode as activating */
+ _bt_adapter_set_status(BT_ACTIVATING);
+ is_recovery_mode = FALSE;
+ } else {
+ _bt_reliable_terminate_service(NULL);
+ }
#else
_bt_set_disabled(BLUETOOTH_ERROR_NONE);
#endif
- if (eventsystem_unregister_event(status_reg_id) != ES_R_OK) {
+ if (eventsystem_unregister_event(status_reg_id) != ES_R_OK)
BT_ERR("Fail to unregister system event");
- }
-
}
static gboolean __bt_enable_timeout_cb(gpointer user_data)
return BLUETOOTH_ERROR_INTERNAL;
}
+ is_recovery_mode = TRUE;
+
g_variant_unref(result);
__bt_disconnect_all();