diff options
3 files changed, 50 insertions, 10 deletions
diff --git a/src/components/application_manager/include/application_manager/application.h b/src/components/application_manager/include/application_manager/application.h index fdb0c15922..f4f2f9779d 100644 --- a/src/components/application_manager/include/application_manager/application.h +++ b/src/components/application_manager/include/application_manager/application.h @@ -409,6 +409,20 @@ class Application : public virtual InitialApplicationData, virtual void UpdateHash() = 0; /** + * @brief Retrieves flag_sending_hash_change_after_awake_ + * @return Returns TRUE if hashID was changed during suspended state + * otherwise returns FALSE. + */ + virtual bool flag_sending_hash_change_after_awake() const = 0; + + /** + * @brief Method is used when core receives OnAwakeSDL notification + * in order to change value of flag_sending_hash_change_after_awake_ + * @param Contains FALSE + */ + virtual void set_flag_sending_hash_change_after_awake(bool flag) = 0; + + /** * @brief method is called when SDL is saving application data for resumption * @return TRUE if data of application need to save for resumption, otherwise * return FALSE diff --git a/src/components/application_manager/include/application_manager/application_impl.h b/src/components/application_manager/include/application_manager/application_impl.h index 3304200372..3bca84e8bf 100644 --- a/src/components/application_manager/include/application_manager/application_impl.h +++ b/src/components/application_manager/include/application_manager/application_impl.h @@ -198,15 +198,26 @@ class ApplicationImpl : public virtual Application, virtual DataAccessor<ButtonSubscriptions> SubscribedButtons() const OVERRIDE; virtual const std::string& curHash() const; -#ifdef CUSTOMER_PASA - virtual bool flag_sending_hash_change_after_awake() const; - virtual void set_flag_sending_hash_change_after_awake(bool flag); -#endif // CUSTOMER_PASA - /** - * @brief Change Hash for current application - * and send notification to mobile - * @return updated_hash - */ + + /** + * @brief Retrieves flag_sending_hash_change_after_awake_ + * @return Returns TRUE if hashID was changed during suspended state + * otherwise returns FALSE. + */ + bool flag_sending_hash_change_after_awake() const OVERRIDE; + + /** + * @brief Method is used when core receives OnAwakeSDL notification + * in order to change value of flag_sending_hash_change_after_awake_ + * @param Contains FALSE + */ + void set_flag_sending_hash_change_after_awake(bool flag) OVERRIDE; + + /** + * @brief Change Hash for current application + * and send notification to mobile + * @return updated_hash + */ virtual void UpdateHash(); UsageStatistics& usage_report(); @@ -432,6 +443,7 @@ class ApplicationImpl : public virtual Application, protocol_handler::MajorProtocolVersion protocol_version_; bool is_voice_communication_application_; sync_primitives::atomic_bool is_resuming_; + bool flag_sending_hash_change_after_awake_; uint32_t video_stream_retry_number_; uint32_t audio_stream_retry_number_; diff --git a/src/components/application_manager/src/application_impl.cc b/src/components/application_manager/src/application_impl.cc index 569880bb56..f9cbc72d50 100644 --- a/src/components/application_manager/src/application_impl.cc +++ b/src/components/application_manager/src/application_impl.cc @@ -44,6 +44,7 @@ #include "utils/make_shared.h" #include "utils/timer_task_impl.h" #include "application_manager/policies/policy_handler_interface.h" +#include "application_manager/resumption/resume_ctrl.h" namespace { @@ -111,6 +112,7 @@ ApplicationImpl::ApplicationImpl( protocol_handler::MajorProtocolVersion::PROTOCOL_VERSION_3) , is_voice_communication_application_(false) , is_resuming_(false) + , flag_sending_hash_change_after_awake_(false) , video_stream_retry_number_(0) , audio_stream_retry_number_(0) , video_stream_suspend_timer_( @@ -872,7 +874,19 @@ void ApplicationImpl::UpdateHash() { utils::gen_hash(application_manager_.get_settings().hash_string_size()); set_is_application_data_changed(true); - MessageHelper::SendHashUpdateNotification(app_id(), application_manager_); + if (!application_manager_.resume_controller().is_suspended()) { + MessageHelper::SendHashUpdateNotification(app_id(), application_manager_); + } else { + flag_sending_hash_change_after_awake_ = true; + } +} + +bool ApplicationImpl::flag_sending_hash_change_after_awake() const { + return flag_sending_hash_change_after_awake_; +} + +void ApplicationImpl::set_flag_sending_hash_change_after_awake(bool flag) { + flag_sending_hash_change_after_awake_ = flag; } void ApplicationImpl::CleanupFiles() { |