diff options
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 | 10 |
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()) { |