diff options
Diffstat (limited to 'src/components/application_manager/src/hmi_state.cc')
-rw-r--r-- | src/components/application_manager/src/hmi_state.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/components/application_manager/src/hmi_state.cc b/src/components/application_manager/src/hmi_state.cc index aa4c979ae7..7be9668543 100644 --- a/src/components/application_manager/src/hmi_state.cc +++ b/src/components/application_manager/src/hmi_state.cc @@ -199,16 +199,17 @@ mobile_apis::HMILevel::eType DeactivateHMI::hmi_level() const { AudioSource::AudioSource(std::shared_ptr<Application> app, const ApplicationManager& app_mngr) - : HmiState(app, app_mngr, STATE_ID_AUDIO_SOURCE) {} + : HmiState(app, app_mngr, STATE_ID_AUDIO_SOURCE) + , keep_context_(app->keep_context()) { + app_->set_keep_context(false); +} mobile_apis::HMILevel::eType AudioSource::hmi_level() const { // Checking for NONE is necessary to avoid issue during // calculation of HMI level during setting default HMI level - if (mobile_apis::HMILevel::HMI_NONE == parent()->hmi_level()) { - return mobile_apis::HMILevel::HMI_NONE; - } - if (mobile_apis::HMILevel::HMI_FULL == parent()->hmi_level()) { - return mobile_apis::HMILevel::HMI_FULL; + if (keep_context_ || + mobile_apis::HMILevel::HMI_NONE == parent()->hmi_level()) { + return parent()->hmi_level(); } return mobile_apis::HMILevel::HMI_BACKGROUND; |