summaryrefslogtreecommitdiff
path: root/src/components/application_manager
diff options
context:
space:
mode:
authorJacob Keeler <jacob.keeler@livioradio.com>2019-03-07 21:18:18 -0500
committerGitHub <noreply@github.com>2019-03-07 21:18:18 -0500
commit3da1fc5cd3a1873400ea28cb9977926ffa56e34c (patch)
tree3093c515daf1fabb8b78d95a3233de70a2c1f8b6 /src/components/application_manager
parentda94380c916d22127da156bec2a753398f44b4db (diff)
parentbcd314658814edf6b822b9a23267c0694865e06c (diff)
downloadsdl_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')
-rw-r--r--src/components/application_manager/include/application_manager/smart_object_keys.h1
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_cloud_app_properties_request.cc34
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_cloud_app_properties_request.cc6
-rw-r--r--src/components/application_manager/src/policies/policy_handler.cc9
-rw-r--r--src/components/application_manager/src/smart_object_keys.cc1
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";