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 | 31 |
1 files changed, 15 insertions, 16 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 0d387785ee..7c2e62abe2 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 @@ -52,26 +52,24 @@ GetAppServiceDataRequest::GetAppServiceDataRequest( application_manager, rpc_service, hmi_capabilities, - policy_handler) - , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( - mobile_apis::FunctionID::GetAppServiceDataID, - app_mngr::commands::Command::CommandSource::SOURCE_MOBILE)); - if (plugin) { - plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); - } -} + policy_handler) {} 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)) { + if (app && (*message_)[strings::msg_params].keyExists(strings::subscribe)) { bool subscribe = (*message_)[strings::msg_params][strings::subscribe].asBool(); auto& ext = AppServiceAppExtension::ExtractASExtension(*app); @@ -81,11 +79,6 @@ void GetAppServiceDataRequest::Run() { ext.UnsubscribeFromAppService(service_type); } } - - SendProviderRequest(mobile_apis::FunctionID::GetAppServiceDataID, - hmi_apis::FunctionID::AppService_GetAppServiceData, - &(*message_), - true); } void GetAppServiceDataRequest::on_event( @@ -97,6 +90,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() @@ -118,6 +114,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() |