diff options
Diffstat (limited to 'src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc')
-rw-r--r-- | src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc index d8ff1d8040..7b29160692 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc @@ -59,13 +59,20 @@ GetAppServiceDataRequest::~GetAppServiceDataRequest() {} void GetAppServiceDataRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); + SendProviderRequest(mobile_apis::FunctionID::GetAppServiceDataID, + hmi_apis::FunctionID::AppService_GetAppServiceData, + &(*message_), + true); +} + +void GetAppServiceDataRequest::HandleSubscribe() { std::string service_type = (*message_)[strings::msg_params][strings::service_type].asString(); - - ApplicationSharedPtr app = application_manager_.application(connection_key()); if ((*message_)[strings::msg_params].keyExists(strings::subscribe)) { bool subscribe = (*message_)[strings::msg_params][strings::subscribe].asBool(); + ApplicationSharedPtr app = + application_manager_.application(connection_key()); auto& ext = AppServiceAppExtension::ExtractASExtension(*app); if (subscribe) { ext.SubscribeToAppService(service_type); @@ -73,11 +80,6 @@ void GetAppServiceDataRequest::Run() { ext.UnsubscribeFromAppService(service_type); } } - - SendProviderRequest(mobile_apis::FunctionID::GetAppServiceDataID, - hmi_apis::FunctionID::AppService_GetAppServiceData, - &(*message_), - true); } void GetAppServiceDataRequest::on_event( @@ -89,6 +91,9 @@ void GetAppServiceDataRequest::on_event( mobile_apis::Result::eType result = static_cast<mobile_apis::Result::eType>( msg_params[strings::result_code].asInt()); bool success = IsMobileResultSuccess(result); + if (success) { + HandleSubscribe(); + } const char* info = msg_params.keyExists(strings::info) ? msg_params[strings::info].asCharArray() @@ -110,6 +115,9 @@ void GetAppServiceDataRequest::on_event(const event_engine::Event& event) { MessageHelper::HMIToMobileResult(hmi_result); bool success = PrepareResultForMobileResponse( hmi_result, HmiInterfaces::HMI_INTERFACE_AppService); + if (success) { + HandleSubscribe(); + } const char* info = msg_params.keyExists(strings::info) ? msg_params[strings::info].asCharArray() |