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:
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.cc10
1 files changed, 9 insertions, 1 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 d79a397651..50152e0924 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
@@ -297,7 +297,13 @@ void SDLActivateAppRequest::on_event(const event_engine::Event& event) {
if (event.id() != BasicCommunication_OnAppRegistered) {
return;
}
- unsubscribe_from_event(BasicCommunication_OnAppRegistered);
+
+ ApplicationSharedPtr pending_app =
+ application_manager_.pending_application_by_hmi_app(app_id());
+ if (pending_app) {
+ SDL_LOG_ERROR("Application is still pending connection: " << app_id());
+ return;
+ }
// Have to use HMI app id from event, since HMI app id from original request
// message will be changed after app, initially requested for launch via
@@ -312,6 +318,8 @@ void SDLActivateAppRequest::on_event(const event_engine::Event& event) {
return;
}
+ unsubscribe_from_event(BasicCommunication_OnAppRegistered);
+
auto main_state =
app->CurrentHmiState(mobile_apis::PredefinedWindows::DEFAULT_WINDOW);
if (mobile_apis::HMILevel::INVALID_ENUM == main_state->hmi_level()) {