summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVadym Luchko (GitHub) <76956836+VadymLuchko@users.noreply.github.com>2022-01-06 19:44:10 +0200
committerGitHub <noreply@github.com>2022-01-06 12:44:10 -0500
commit50a6f8a2d62954a5e31c795c48cf3c258af2b690 (patch)
treeef4428a32e0362b8f528a34c535e3f4429674a48 /src
parent014d13faff80ca076d07ece2244b54b013826d23 (diff)
downloadsdl_core-50a6f8a2d62954a5e31c795c48cf3c258af2b690.tar.gz
state_controller subscription (#3836)
Diffstat (limited to 'src')
-rw-r--r--src/components/application_manager/src/state_controller_impl.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/components/application_manager/src/state_controller_impl.cc b/src/components/application_manager/src/state_controller_impl.cc
index b8dbb69f50..28146a1adc 100644
--- a/src/components/application_manager/src/state_controller_impl.cc
+++ b/src/components/application_manager/src/state_controller_impl.cc
@@ -78,7 +78,9 @@ void StateControllerImpl::SetRegularState(ApplicationSharedPtr app,
DCHECK_OR_RETURN_VOID(state);
DCHECK_OR_RETURN_VOID(HmiState::STATE_ID_REGULAR == state->state_id());
- SDL_LOG_DEBUG("Set window #" << window_id << " regular state " << *state);
+ SDL_LOG_DEBUG("Set window #" << window_id << " regular state " << *state
+ << " hmi_state_change "
+ << request_hmi_state_change);
if (state->hmi_level() == mobile_apis::HMILevel::INVALID_ENUM ||
state->audio_streaming_state() ==
@@ -113,11 +115,12 @@ void StateControllerImpl::SetRegularState(ApplicationSharedPtr app,
const int64_t result = RequestHMIStateChange(app, hmi_level, true);
if (-1 != result) {
const uint32_t corr_id = static_cast<uint32_t>(result);
+
subscribe_on_event(
- hmi_apis::Common_HMILevel::NONE == hmi_level
- ? hmi_apis::FunctionID::BasicCommunication_CloseApplication
- : hmi_apis::FunctionID::BasicCommunication_ActivateApp,
- corr_id);
+ hmi_apis::FunctionID::BasicCommunication_CloseApplication, corr_id);
+ subscribe_on_event(hmi_apis::FunctionID::BasicCommunication_ActivateApp,
+ corr_id);
+
waiting_for_response_[app->app_id()] = resolved_state;
app_mngr_.set_application_id(corr_id, app->hmi_app_id());
return;
@@ -782,6 +785,10 @@ void StateControllerImpl::HandleOnEvent(const event_engine::Event& event) {
case FunctionID::BasicCommunication_ActivateApp:
case FunctionID::BasicCommunication_CloseApplication: {
OnHMIResponse(message);
+ unsubscribe_from_event(
+ hmi_apis::FunctionID::BasicCommunication_CloseApplication);
+ unsubscribe_from_event(
+ hmi_apis::FunctionID::BasicCommunication_ActivateApp);
break;
}
case FunctionID::BasicCommunication_OnAppActivated: {