diff options
author | Jacob Keeler <jacob.keeler@livioradio.com> | 2019-03-07 21:18:18 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-07 21:18:18 -0500 |
commit | 3da1fc5cd3a1873400ea28cb9977926ffa56e34c (patch) | |
tree | 3093c515daf1fabb8b78d95a3233de70a2c1f8b6 /src/components/application_manager | |
parent | da94380c916d22127da156bec2a753398f44b4db (diff) | |
parent | bcd314658814edf6b822b9a23267c0694865e06c (diff) | |
download | sdl_core-3da1fc5cd3a1873400ea28cb9977926ffa56e34c.tar.gz |
Merge pull request #2834 from smartdevicelink/feature/cloud_app_properties_revisionsfeature/cloud_app_transport
Implement cloud app properties revision
Diffstat (limited to 'src/components/application_manager')
5 files changed, 22 insertions, 29 deletions
diff --git a/src/components/application_manager/include/application_manager/smart_object_keys.h b/src/components/application_manager/include/application_manager/smart_object_keys.h index aaca228eda..2e8b02d06b 100644 --- a/src/components/application_manager/include/application_manager/smart_object_keys.h +++ b/src/components/application_manager/include/application_manager/smart_object_keys.h @@ -188,6 +188,7 @@ extern const char* green; extern const char* blue; extern const char* display_layout; extern const char* icon_resumed; +extern const char* nicknames; extern const char* enabled; extern const char* auth_token; extern const char* cloud_transport_type; diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_cloud_app_properties_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_cloud_app_properties_request.cc index 62c91ff3d5..34ed30c243 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_cloud_app_properties_request.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_cloud_app_properties_request.cc @@ -54,32 +54,20 @@ void GetCloudAppPropertiesRequest::Run() { return; } - ApplicationSharedPtr cloud_app = - application_manager_.application_by_policy_id(policy_app_id); - std::string cloud_name; - if (cloud_app) { - cloud_name = cloud_app->name().AsMBString(); - } else { - policy::StringArray nicknames; - policy::StringArray app_hmi_types; - - policy_handler_.GetInitialAppData( - policy_app_id, &nicknames, &app_hmi_types); - - if (!nicknames.size()) { - LOG4CXX_ERROR(logger_, "Cloud App missing nickname"); - SendResponse(false, - mobile_apis::Result::DATA_NOT_AVAILABLE, - "No available nick names for the requested app"); - return; - } - cloud_name = nicknames[0]; - } + policy::StringArray nicknames; + policy::StringArray app_hmi_types; + + policy_handler_.GetInitialAppData(policy_app_id, &nicknames, &app_hmi_types); smart_objects::SmartObject response_params(smart_objects::SmartType_Map); smart_objects::SmartObject properties(smart_objects::SmartType_Map); - - properties[strings::app_name] = cloud_name; + smart_objects::SmartObject nicknames_array(smart_objects::SmartType_Array); + size_t i = 0; + for (std::string nickname : nicknames) { + nicknames_array[i] = nickname; + ++i; + } + properties[strings::nicknames] = nicknames_array; properties[strings::app_id] = policy_app_id; properties[strings::enabled] = enabled; diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_cloud_app_properties_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_cloud_app_properties_request.cc index 663881a2ea..5173be56d6 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_cloud_app_properties_request.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_cloud_app_properties_request.cc @@ -29,12 +29,6 @@ void SetCloudAppPropertiesRequest::Run() { return; } - if ((*message_)[strings::msg_params].empty()) { - LOG4CXX_ERROR(logger_, strings::msg_params << " is empty."); - SendResponse(false, mobile_apis::Result::INVALID_DATA); - return; - } - policy_handler_.OnSetCloudAppProperties(*message_); SendResponse(true, mobile_apis::Result::SUCCESS); diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index 7d94e19b12..691ac21040 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -1954,6 +1954,15 @@ void PolicyHandler::OnSetCloudAppProperties( policy_manager_->SetAppEndpoint(policy_app_id, properties[strings::endpoint].asString()); } + if (properties.keyExists(strings::nicknames)) { + StringArray nicknames; + const smart_objects::SmartObject& nicknames_array = + properties[strings::nicknames]; + for (size_t i = 0; i < nicknames_array.length(); ++i) { + nicknames.push_back(nicknames_array[i].asString()); + } + policy_manager_->SetAppNicknames(policy_app_id, nicknames); + } if (properties.keyExists(strings::hybrid_app_preference)) { std::string hybrid_app_preference; diff --git a/src/components/application_manager/src/smart_object_keys.cc b/src/components/application_manager/src/smart_object_keys.cc index 109739c359..485b59c520 100644 --- a/src/components/application_manager/src/smart_object_keys.cc +++ b/src/components/application_manager/src/smart_object_keys.cc @@ -155,6 +155,7 @@ const char* green = "green"; const char* blue = "blue"; const char* display_layout = "displayLayout"; const char* icon_resumed = "iconResumed"; +const char* nicknames = "nicknames"; const char* enabled = "enabled"; const char* auth_token = "authToken"; const char* cloud_transport_type = "cloudTransportType"; |