From 90962a664990f3d6bbd96c5b3cf387328ef3315d Mon Sep 17 00:00:00 2001 From: JackLivio Date: Tue, 1 May 2018 11:04:33 -0400 Subject: Move color scheme to Dynamic Application Data & Add Set Display layout support --- .../include/application_manager/application.h | 12 ++-- .../application_manager/application_data_impl.h | 13 ++-- .../src/application_data_impl.cc | 82 +++++++++++----------- .../commands/mobile/set_display_layout_request.cc | 13 +++- 4 files changed, 66 insertions(+), 54 deletions(-) diff --git a/src/components/application_manager/include/application_manager/application.h b/src/components/application_manager/include/application_manager/application.h index 3ef608448e..aa607449a2 100644 --- a/src/components/application_manager/include/application_manager/application.h +++ b/src/components/application_manager/include/application_manager/application.h @@ -113,8 +113,6 @@ class InitialApplicationData { virtual const smart_objects::SmartObject* ngn_media_screen_name() const = 0; virtual const mobile_api::Language::eType& language() const = 0; virtual const mobile_api::Language::eType& ui_language() const = 0; - virtual const smart_objects::SmartObject* day_color_scheme() const = 0; - virtual const smart_objects::SmartObject* night_color_scheme() const = 0; virtual void set_app_types(const smart_objects::SmartObject& app_types) = 0; virtual void set_vr_synonyms( const smart_objects::SmartObject& vr_synonyms) = 0; @@ -125,10 +123,6 @@ class InitialApplicationData { virtual void set_language(const mobile_api::Language::eType& language) = 0; virtual void set_ui_language( const mobile_api::Language::eType& ui_language) = 0; - virtual void set_day_color_scheme( - const smart_objects::SmartObject& color_scheme) = 0; - virtual void set_night_color_scheme( - const smart_objects::SmartObject& color_scheme) = 0; }; /* @@ -195,6 +189,8 @@ class DynamicApplicationData { virtual const smart_objects::SmartObject* keyboard_props() const = 0; virtual const smart_objects::SmartObject* menu_title() const = 0; virtual const smart_objects::SmartObject* menu_icon() const = 0; + virtual const smart_objects::SmartObject* day_color_scheme() const = 0; + virtual const smart_objects::SmartObject* night_color_scheme() const = 0; virtual void load_global_properties(const smart_objects::SmartObject& so) = 0; virtual void set_help_prompt( @@ -226,6 +222,10 @@ class DynamicApplicationData { virtual void set_video_stream_retry_number( const uint32_t& video_stream_retry_number) = 0; + virtual void set_day_color_scheme( + const smart_objects::SmartObject& color_scheme) = 0; + virtual void set_night_color_scheme( + const smart_objects::SmartObject& color_scheme) = 0; /** * @brief Checks if application is media, voice communication or navigation * @return true if application is media, voice communication or navigation, diff --git a/src/components/application_manager/include/application_manager/application_data_impl.h b/src/components/application_manager/include/application_manager/application_data_impl.h index fb1e15f6ba..6d47ba4736 100644 --- a/src/components/application_manager/include/application_manager/application_data_impl.h +++ b/src/components/application_manager/include/application_manager/application_data_impl.h @@ -55,8 +55,7 @@ class InitialApplicationDataImpl : public virtual Application { const smart_objects::SmartObject* ngn_media_screen_name() const; const mobile_api::Language::eType& language() const; const mobile_api::Language::eType& ui_language() const; - const smart_objects::SmartObject* day_color_scheme() const; - const smart_objects::SmartObject* night_color_scheme() const; + void set_app_types(const smart_objects::SmartObject& app_types); void set_vr_synonyms(const smart_objects::SmartObject& vr_synonyms); void set_mobile_app_id(const std::string& policy_app_id); @@ -64,8 +63,6 @@ class InitialApplicationDataImpl : public virtual Application { void set_ngn_media_screen_name(const smart_objects::SmartObject& ngn_name); void set_language(const mobile_api::Language::eType& language); void set_ui_language(const mobile_api::Language::eType& ui_language); - void set_day_color_scheme(const smart_objects::SmartObject& color_scheme); - void set_night_color_scheme(const smart_objects::SmartObject& color_scheme); void set_perform_interaction_layout( mobile_api::LayoutMode::eType layout) OVERRIDE; @@ -80,8 +77,6 @@ class InitialApplicationDataImpl : public virtual Application { mobile_api::Language::eType language_; mobile_api::Language::eType ui_language_; mobile_apis::LayoutMode::eType perform_interaction_layout_; - smart_objects::SmartObject* day_color_scheme_; - smart_objects::SmartObject* night_color_scheme_; private: DISALLOW_COPY_AND_ASSIGN(InitialApplicationDataImpl); @@ -101,6 +96,8 @@ class DynamicApplicationDataImpl : public virtual Application { const smart_objects::SmartObject* keyboard_props() const; const smart_objects::SmartObject* menu_title() const; const smart_objects::SmartObject* menu_icon() const; + const smart_objects::SmartObject* day_color_scheme() const; + const smart_objects::SmartObject* night_color_scheme() const; void load_global_properties(const smart_objects::SmartObject& properties_so); void set_help_prompt(const smart_objects::SmartObject& help_prompt); @@ -115,6 +112,8 @@ class DynamicApplicationDataImpl : public virtual Application { void set_keyboard_props(const smart_objects::SmartObject& keyboard_props); void set_menu_title(const smart_objects::SmartObject& menu_title); void set_menu_icon(const smart_objects::SmartObject& menu_icon); + void set_day_color_scheme(const smart_objects::SmartObject& color_scheme); + void set_night_color_scheme(const smart_objects::SmartObject& color_scheme); /* * @brief Adds a command to the in application menu */ @@ -269,6 +268,8 @@ class DynamicApplicationDataImpl : public virtual Application { smart_objects::SmartObject* menu_title_; smart_objects::SmartObject* menu_icon_; smart_objects::SmartObject* tbt_show_command_; + smart_objects::SmartObject* day_color_scheme_; + smart_objects::SmartObject* night_color_scheme_; CommandsMap commands_; mutable sync_primitives::Lock commands_lock_; diff --git a/src/components/application_manager/src/application_data_impl.cc b/src/components/application_manager/src/application_data_impl.cc index cecd8d2d6c..a5c39455ba 100644 --- a/src/components/application_manager/src/application_data_impl.cc +++ b/src/components/application_manager/src/application_data_impl.cc @@ -45,9 +45,7 @@ InitialApplicationDataImpl::InitialApplicationDataImpl() , tts_name_(NULL) , ngn_media_screen_name_(NULL) , language_(mobile_api::Language::INVALID_ENUM) - , ui_language_(mobile_api::Language::INVALID_ENUM) - , day_color_scheme_(NULL) - , night_color_scheme_(NULL) {} + , ui_language_(mobile_api::Language::INVALID_ENUM) {} InitialApplicationDataImpl::~InitialApplicationDataImpl() { if (app_types_) { @@ -69,16 +67,6 @@ InitialApplicationDataImpl::~InitialApplicationDataImpl() { delete ngn_media_screen_name_; ngn_media_screen_name_ = NULL; } - - if (day_color_scheme_) { - delete day_color_scheme_; - day_color_scheme_ = NULL; - } - - if (night_color_scheme_) { - delete night_color_scheme_; - night_color_scheme_ = NULL; - } } const smart_objects::SmartObject* InitialApplicationDataImpl::app_types() @@ -114,16 +102,6 @@ const mobile_api::Language::eType& InitialApplicationDataImpl::ui_language() return ui_language_; } -const smart_objects::SmartObject* -InitialApplicationDataImpl::day_color_scheme() const { - return day_color_scheme_; -} - -const smart_objects::SmartObject* -InitialApplicationDataImpl::night_color_scheme() const { - return night_color_scheme_; -} - void InitialApplicationDataImpl::set_app_types( const smart_objects::SmartObject& app_types) { if (app_types_) { @@ -184,24 +162,6 @@ InitialApplicationDataImpl::perform_interaction_layout() const { return perform_interaction_layout_; } -void InitialApplicationDataImpl::set_day_color_scheme( - const smart_objects::SmartObject& color_scheme) { - if (day_color_scheme_) { - delete day_color_scheme_; - } - - day_color_scheme_ = new smart_objects::SmartObject(color_scheme); -} - -void InitialApplicationDataImpl::set_night_color_scheme( - const smart_objects::SmartObject& color_scheme) { - if (night_color_scheme_) { - delete night_color_scheme_; - } - - night_color_scheme_ = new smart_objects::SmartObject(color_scheme); -} - DynamicApplicationDataImpl::DynamicApplicationDataImpl() : help_prompt_(NULL) , timeout_prompt_(NULL) @@ -213,6 +173,8 @@ DynamicApplicationDataImpl::DynamicApplicationDataImpl() , menu_title_(NULL) , menu_icon_(NULL) , tbt_show_command_(NULL) + , day_color_scheme_(NULL) + , night_color_scheme_(NULL) , commands_() , commands_lock_(true) , sub_menu_() @@ -254,6 +216,16 @@ DynamicApplicationDataImpl::~DynamicApplicationDataImpl() { tbt_show_command_ = NULL; } + if (day_color_scheme_) { + delete day_color_scheme_; + day_color_scheme_ = NULL; + } + + if (night_color_scheme_) { + delete night_color_scheme_; + night_color_scheme_ = NULL; + } + for (CommandsMap::iterator command_it = commands_.begin(); commands_.end() != command_it; ++command_it) { @@ -330,6 +302,16 @@ const smart_objects::SmartObject* DynamicApplicationDataImpl::menu_icon() return menu_icon_; } +const smart_objects::SmartObject* +DynamicApplicationDataImpl::day_color_scheme() const { + return day_color_scheme_; +} + +const smart_objects::SmartObject* +DynamicApplicationDataImpl::night_color_scheme() const { + return night_color_scheme_; +} + void DynamicApplicationDataImpl::load_global_properties( const smart_objects::SmartObject& properties_so) { SetGlobalProperties(properties_so.getElement(strings::vr_help_title), @@ -445,6 +427,24 @@ void DynamicApplicationDataImpl::set_menu_icon( menu_icon_ = new smart_objects::SmartObject(menu_icon); } +void DynamicApplicationDataImpl::set_day_color_scheme( + const smart_objects::SmartObject& color_scheme) { + if (day_color_scheme_) { + delete day_color_scheme_; + } + + day_color_scheme_ = new smart_objects::SmartObject(color_scheme); +} + +void DynamicApplicationDataImpl::set_night_color_scheme( + const smart_objects::SmartObject& color_scheme) { + if (night_color_scheme_) { + delete night_color_scheme_; + } + + night_color_scheme_ = new smart_objects::SmartObject(color_scheme); +} + void DynamicApplicationDataImpl::SetGlobalProperties( const smart_objects::SmartObject& param, void (DynamicApplicationData::*callback)( diff --git a/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc b/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc index 38b62ce731..993e094647 100644 --- a/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc +++ b/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc @@ -48,7 +48,7 @@ SetDisplayLayoutRequest::~SetDisplayLayoutRequest() {} void SetDisplayLayoutRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); - ApplicationConstSharedPtr app = + ApplicationSharedPtr app = application_manager_.application(connection_key()); if (!app) { @@ -57,6 +57,17 @@ void SetDisplayLayoutRequest::Run() { return; } + const smart_objects::SmartObject& msg_params = + (*message_)[strings::msg_params]; + + if (msg_params.keyExists(strings::day_color_scheme)) { + app->set_day_color_scheme(msg_params[strings::day_color_scheme]); + } + + if (msg_params.keyExists(strings::night_color_scheme)) { + app->set_night_color_scheme(msg_params[strings::night_color_scheme]); + } + (*message_)[strings::msg_params][strings::app_id] = app->app_id(); StartAwaitForInterface(HmiInterfaces::HMI_INTERFACE_UI); SendHMIRequest(hmi_apis::FunctionID::UI_SetDisplayLayout, -- cgit v1.2.1