summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src
diff options
context:
space:
mode:
authorJackLivio <jack@livio.io>2018-05-02 11:41:29 -0400
committerJackLivio <jack@livio.io>2018-05-02 11:41:29 -0400
commit47d09114d7a71c871b1b697c8f807de338995e0f (patch)
treedbfae256962edc901e674accd0b4042b04aaf35d /src/components/application_manager/src
parent90962a664990f3d6bbd96c5b3cf387328ef3315d (diff)
downloadsdl_core-47d09114d7a71c871b1b697c8f807de338995e0f.tar.gz
Upadte Color Via Set Display Layout and add Reject Logic
Diffstat (limited to 'src/components/application_manager/src')
-rw-r--r--src/components/application_manager/src/application_data_impl.cc9
-rw-r--r--src/components/application_manager/src/commands/mobile/set_display_layout_request.cc48
-rw-r--r--src/components/application_manager/src/smart_object_keys.cc1
3 files changed, 56 insertions, 2 deletions
diff --git a/src/components/application_manager/src/application_data_impl.cc b/src/components/application_manager/src/application_data_impl.cc
index a5c39455ba..5e31995b7d 100644
--- a/src/components/application_manager/src/application_data_impl.cc
+++ b/src/components/application_manager/src/application_data_impl.cc
@@ -175,6 +175,7 @@ DynamicApplicationDataImpl::DynamicApplicationDataImpl()
, tbt_show_command_(NULL)
, day_color_scheme_(NULL)
, night_color_scheme_(NULL)
+ , display_layout_("")
, commands_()
, commands_lock_(true)
, sub_menu_()
@@ -312,6 +313,10 @@ DynamicApplicationDataImpl::night_color_scheme() const {
return night_color_scheme_;
}
+const std::string& DynamicApplicationDataImpl::display_layout() const {
+ return display_layout_;
+}
+
void DynamicApplicationDataImpl::load_global_properties(
const smart_objects::SmartObject& properties_so) {
SetGlobalProperties(properties_so.getElement(strings::vr_help_title),
@@ -445,6 +450,10 @@ void DynamicApplicationDataImpl::set_night_color_scheme(
night_color_scheme_ = new smart_objects::SmartObject(color_scheme);
}
+void DynamicApplicationDataImpl::set_display_layout(const std::string& layout) {
+ display_layout_ = layout;
+}
+
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 993e094647..e80912f2d9 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
@@ -60,12 +60,56 @@ void SetDisplayLayoutRequest::Run() {
const smart_objects::SmartObject& msg_params =
(*message_)[strings::msg_params];
+ std::string old_layout = app->display_layout();
+ std::string new_layout = "";
+ bool allow_color_change = true;
+
+ if (msg_params.keyExists(strings::display_layout)) {
+ new_layout = msg_params[strings::display_layout].asString();
+ }
+
+ if(new_layout != old_layout && !new_layout.empty()) { // Template switched, allow any color change
+ LOG4CXX_DEBUG(logger_, "SetDisplayLayoutRequest New Layout: " << new_layout);
+ app->set_display_layout(new_layout);
+ } else {
+ LOG4CXX_DEBUG(logger_, "SetDisplayLayoutRequest No Layout Change");
+ // Template layout is the same as previous layout
+ // Reject message if colors are set
+ if ((msg_params.keyExists(strings::day_color_scheme) && app->day_color_scheme() != NULL)) {
+ if(!(msg_params[strings::day_color_scheme] == *(app->day_color_scheme())) ) {
+ //Color scheme param exists and has been previously set, do not allow color change
+ LOG4CXX_DEBUG(logger_, "Reject Day Color Scheme Change");
+ allow_color_change = false;
+ }
+
+ }
+
+ if ((msg_params.keyExists(strings::night_color_scheme) && app->night_color_scheme() != NULL)) {
+ if(!(msg_params[strings::night_color_scheme] == *(app->night_color_scheme())) ) {
+ //Color scheme param exists and has been previously set, do not allow color change
+ LOG4CXX_DEBUG(logger_, "Reject Night Color Scheme Change");
+ allow_color_change = false;
+ }
+ }
+ }
+
if (msg_params.keyExists(strings::day_color_scheme)) {
- app->set_day_color_scheme(msg_params[strings::day_color_scheme]);
+ if(allow_color_change) {
+ LOG4CXX_DEBUG(logger_, "Allow Day Color Scheme Change");
+ 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]);
+ if(allow_color_change) {
+ LOG4CXX_DEBUG(logger_, "Allow Night Color Scheme Change");
+ app->set_night_color_scheme(msg_params[strings::night_color_scheme]);
+ }
+ }
+
+ if (!allow_color_change) {
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
}
(*message_)[strings::msg_params][strings::app_id] = app->app_id();
diff --git a/src/components/application_manager/src/smart_object_keys.cc b/src/components/application_manager/src/smart_object_keys.cc
index 88ec5986f4..788f8d28fc 100644
--- a/src/components/application_manager/src/smart_object_keys.cc
+++ b/src/components/application_manager/src/smart_object_keys.cc
@@ -150,6 +150,7 @@ const char* background_color = "backgroundColor";
const char* red = "red";
const char* green = "green";
const char* blue = "blue";
+const char* display_layout = "displayLayout";
// PutFile
const char* sync_file_name = "syncFileName";