summaryrefslogtreecommitdiff
path: root/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc
diff options
context:
space:
mode:
authorjacobkeeler <jacob.keeler@livioradio.com>2018-11-15 14:17:30 -0500
committerjacobkeeler <jacob.keeler@livioradio.com>2018-11-15 14:17:30 -0500
commit1411b1b98c37ca6d483425562b01d9f40a20d52b (patch)
tree7744a52d4b53237434b07041038f672d285c9185 /src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc
parent232f7f86c3d3e70df70aa14fb6817eb4c9e17c9d (diff)
downloadsdl_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.cc14
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;