return;
}
- picojson::value value = picojson::value(picojson::object());
- picojson::object* data_obj = &value.get<picojson::object>();
+ if (adapter->is_callback_set_) {
+ picojson::value value = picojson::value(picojson::object());
+ picojson::object* data_obj = &value.get<picojson::object>();
- data_obj->insert(std::make_pair(kAction, picojson::value(kOnNameChanged)));
- data_obj->insert(std::make_pair(kName, picojson::value(name)));
+ data_obj->insert(std::make_pair(kAction, picojson::value(kOnNameChanged)));
+ data_obj->insert(std::make_pair(kName, picojson::value(name)));
- adapter->instance_.FireEvent(kAdapterChangeCallbackEvent, value);
+ adapter->instance_.FireEvent(kAdapterChangeCallbackEvent, value);
+ }
if (adapter->user_request_list_[SET_NAME] && name == adapter->requested_name_) {
std::shared_ptr<picojson::value> response =
return;
}
- if (this->get_powered()) {
- if (get_name() == name) {
- instance_.AsyncResponse(callback_handle, result);
- return;
- }
+ if (!this->get_powered()) {
+ result =
+ LogAndCreateResult(ErrorCode::SERVICE_NOT_AVAILABLE_ERR, "Bluetooth device is turned off");
+ instance_.AsyncResponse(callback_handle, result);
+ return;
+ }
- if (this->user_request_list_[SET_NAME]) {
- result = LogAndCreateResult(ErrorCode::SERVICE_NOT_AVAILABLE_ERR, "Already requested");
- instance_.AsyncResponse(callback_handle, result);
- return;
- }
+ if (get_name() == name) {
+ LoggerD("Requested the same name, calling success callback");
+ instance_.AsyncResponse(callback_handle, result);
+ return;
+ }
+
+ if (this->user_request_list_[SET_NAME]) {
+ result = LogAndCreateResult(ErrorCode::SERVICE_NOT_AVAILABLE_ERR, "Already requested");
+ instance_.AsyncResponse(callback_handle, result);
+ return;
+ }
- this->user_request_list_[SET_NAME] = true;
- this->user_request_callback_[SET_NAME] = callback_handle;
+ this->user_request_list_[SET_NAME] = true;
+ this->user_request_callback_[SET_NAME] = callback_handle;
- int ret = bt_adapter_set_name(name.c_str());
- switch (ret) {
- case BT_ERROR_NONE:
- // bt_adapter_name_changed_cb() will be invoked
- // if this function returns #BT_ERROR_NONE
- this->requested_name_ = name;
- break;
- case BT_ERROR_INVALID_PARAMETER:
- result =
- LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, "Invalid value",
- ("bt_adapter_set_name error: %d (%s)", ret, get_error_message(ret)));
- break;
- default:
- result =
- LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Unknown exception",
- ("bt_adapter_set_name error: %d (%s)", ret, get_error_message(ret)));
- }
- } else {
- result =
- LogAndCreateResult(ErrorCode::SERVICE_NOT_AVAILABLE_ERR, "Bluetooth device is turned off");
+ int ret = bt_adapter_set_name(name.c_str());
+ switch (ret) {
+ case BT_ERROR_NONE:
+ // bt_adapter_name_changed_cb() will be invoked
+ // if this function returns #BT_ERROR_NONE
+ this->requested_name_ = name;
+ break;
+ case BT_ERROR_INVALID_PARAMETER:
+ result =
+ LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, "Invalid value",
+ ("bt_adapter_set_name error: %d (%s)", ret, get_error_message(ret)));
+ break;
+ default:
+ result =
+ LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Unknown exception",
+ ("bt_adapter_set_name error: %d (%s)", ret, get_error_message(ret)));
}
if (result.IsError()) {
this->user_request_list_[SET_NAME] = false;
+ instance_.AsyncResponse(callback_handle, result);
+ return;
}
-
- instance_.AsyncResponse(callback_handle, result);
}
void BluetoothAdapter::SetPowered(const picojson::value& data, picojson::object& out) {