diff options
author | jacobkeeler <jacob.keeler@livioradio.com> | 2018-11-15 14:17:30 -0500 |
---|---|---|
committer | jacobkeeler <jacob.keeler@livioradio.com> | 2018-11-15 14:17:30 -0500 |
commit | 1411b1b98c37ca6d483425562b01d9f40a20d52b (patch) | |
tree | 7744a52d4b53237434b07041038f672d285c9185 /src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc | |
parent | 232f7f86c3d3e70df70aa14fb6817eb4c9e17c9d (diff) | |
download | sdl_core-1411b1b98c37ca6d483425562b01d9f40a20d52b.tar.gz |
Fix issues with ActivateApp flow
Diffstat (limited to 'src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc')
-rw-r--r-- | src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc index c81c53d5a9..bfe7adec11 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc @@ -115,6 +115,8 @@ void SDLActivateAppRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); using namespace hmi_apis::FunctionID; + ApplicationConstSharedPtr app = + application_manager_.WaitingApplicationByID(app_id()); if (application_manager_.state_controller().IsStateActive( HmiState::STATE_ID_DEACTIVATE_HMI)) { LOG4CXX_DEBUG(logger_, @@ -124,11 +126,10 @@ void SDLActivateAppRequest::Run() { static_cast<eType>(function_id()), hmi_apis::Common_Result::REJECTED, "HMIDeactivate is active"); - } else if (!app_to_activate->IsRegistered() && - app_to_activate->is_cloud_app()) { + } else if (app && !app->IsRegistered() && app->is_cloud_app()) { LOG4CXX_DEBUG(logger_, "Starting cloud application."); - application_manager_.connection_handler().ConnectToDevice( - app_to_activate->device()); + subscribe_on_event(BasicCommunication_OnAppRegistered); + application_manager_.connection_handler().ConnectToDevice(app->device()); } else { const uint32_t application_id = app_id(); policy_handler_.OnActivateApp(application_id, correlation_id()); @@ -144,7 +145,7 @@ void SDLActivateAppRequest::Run() { const uint32_t application_id = app_id(); ApplicationConstSharedPtr app_to_activate = - application_manager_.application(application_id); + application_manager_.application_by_hmi_app(application_id); if (!app_to_activate) { LOG4CXX_WARN( @@ -188,6 +189,7 @@ void SDLActivateAppRequest::Run() { return; } else if (app_to_activate->is_cloud_app()) { LOG4CXX_DEBUG(logger_, "Starting cloud application."); + subscribe_on_event(BasicCommunication_OnAppRegistered); application_manager_.connection_handler().ConnectToDevice( app_to_activate->device()); return; @@ -272,7 +274,7 @@ uint32_t SDLActivateAppRequest::hmi_app_id( LOG4CXX_DEBUG(logger_, application << " section is absent in the message."); return 0; } - if (so[msg_params][application].keyExists(strings::app_id)) { + if (!so[msg_params][application].keyExists(strings::app_id)) { LOG4CXX_DEBUG(logger_, strings::app_id << " section is absent in the message."); return 0; |