APPLINK-6414 Media App Should Not Be Attenuated During Phone Call
authorVladislav Smenyuk <VSmenyuk@luxoft.com>
Wed, 26 Mar 2014 10:38:54 +0000 (03:38 -0700)
committerJustin Dickow <jjdickow@gmail.com>
Tue, 8 Jul 2014 22:10:38 +0000 (18:10 -0400)
src/components/application_manager/include/application_manager/application.h
src/components/application_manager/include/application_manager/application_impl.h
src/components/application_manager/src/application_impl.cc
src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc

index 6d5936d..899ba51 100644 (file)
@@ -395,6 +395,7 @@ class Application : public virtual InitialApplicationData,
     virtual const std::string& app_icon_path() const = 0;
     virtual connection_handler::DeviceHandle device() const = 0;
     virtual void set_tts_speak_state(bool state_tts_speak) = 0;
+    virtual bool tts_speak_state() = 0;
     virtual void set_version(const Version& version) = 0;
     virtual void set_name(const std::string& name) = 0;
     virtual void set_is_media_application(bool is_media) = 0;
index 868ce46..ae7d1be 100644 (file)
@@ -81,6 +81,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
   const std::string& app_icon_path() const;
   connection_handler::DeviceHandle device() const;
   void set_tts_speak_state(bool state_tts_speak);
+  bool tts_speak_state();
   void set_version(const Version& ver);
   void set_name(const std::string& name);
   void set_is_media_application(bool is_media);
index 4408a9a..57d3f35 100644 (file)
@@ -180,6 +180,10 @@ void ApplicationImpl::set_tts_speak_state(bool state_tts_speak) {
   tts_speak_state_ = state_tts_speak;
 }
 
+bool ApplicationImpl::tts_speak_state() {
+  return tts_speak_state_;
+}
+
 void ApplicationImpl::set_hmi_level(
     const mobile_api::HMILevel::eType& hmi_level) {
   if (mobile_api::HMILevel::HMI_NONE != hmi_level_ &&
index e20a1b9..05f606b 100644 (file)
@@ -69,10 +69,11 @@ void OnAppDeactivatedNotification::Run() {
   }
 
   switch ((*message_)[strings::msg_params][hmi_request::reason].asInt()) {
-    case hmi_apis::Common_DeactivateReason::AUDIO:
-    case hmi_apis::Common_DeactivateReason::PHONECALL: {
+    case hmi_apis::Common_DeactivateReason::AUDIO: {
       if (app->is_media_application()) {
-        if (profile::Profile::instance()->is_mixing_audio_supported()) {
+        if (profile::Profile::instance()->is_mixing_audio_supported() &&
+            (ApplicationManagerImpl::instance()->vr_session_started() ||
+             app->tts_speak_state())) {
           app->set_audio_streaming_state(
               mobile_api::AudioStreamingState::ATTENUATED);
         } else {
@@ -84,6 +85,13 @@ void OnAppDeactivatedNotification::Run() {
       app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
       break;
     }
+    case hmi_apis::Common_DeactivateReason::PHONECALL: {
+      app->set_audio_streaming_state(
+          mobile_api::AudioStreamingState::NOT_AUDIBLE);
+      ApplicationManagerImpl::instance()->DeactivateApplication(app);
+      app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
+      break;
+    }
     case hmi_apis::Common_DeactivateReason::NAVIGATIONMAP:
     case hmi_apis::Common_DeactivateReason::PHONEMENU:
     case hmi_apis::Common_DeactivateReason::SYNCSETTINGS: