summaryrefslogtreecommitdiff
path: root/src/components/application_manager/rpc_plugins/sdl_rpc_plugin
diff options
context:
space:
mode:
authorJacob Keeler <jacob.keeler@livioradio.com>2019-02-27 13:13:44 -0500
committerGitHub <noreply@github.com>2019-02-27 13:13:44 -0500
commitc8e6559e24781da9d20824f77ef5d231dfb60b54 (patch)
tree88a8af462aa15722d1de21d3160ddea63c901f0d /src/components/application_manager/rpc_plugins/sdl_rpc_plugin
parent45b9c2e8d109ed124c604c4b690b1847bc93c9c6 (diff)
parent97806312bc0df88d74fadc0c9c620599545b0887 (diff)
downloadsdl_core-c8e6559e24781da9d20824f77ef5d231dfb60b54.tar.gz
Merge pull request #2820 from smartdevicelink/feature/navigation_service_type
Add NAVIGATION AppServiceType
Diffstat (limited to 'src/components/application_manager/rpc_plugins/sdl_rpc_plugin')
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification.cc20
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_system_capability_request.cc14
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_capability_updated_notification.cc20
3 files changed, 50 insertions, 4 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification.cc
index d0c33e76d9..73ec1137a8 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification.cc
@@ -70,9 +70,21 @@ void OnBCSystemCapabilityUpdatedNotification::Run() {
[strings::system_capability_type].asInt());
switch (system_capability_type) {
case hmi_apis::Common_SystemCapabilityType::NAVIGATION: {
+ smart_objects::SmartObject nav_capability(smart_objects::SmartType_Map);
+ bool has_nav_capability = false;
if (hmi_capabilities_.navigation_capability()) {
+ has_nav_capability = true;
+ nav_capability = *hmi_capabilities_.navigation_capability();
+ }
+ has_nav_capability = application_manager_.GetAppServiceManager()
+ .UpdateNavigationCapabilities(nav_capability) ||
+ has_nav_capability;
+
+ if (has_nav_capability) {
msg_params[strings::system_capability][strings::navigation_capability] =
- *hmi_capabilities_.navigation_capability();
+ nav_capability;
+ } else {
+ return;
}
break;
}
@@ -80,6 +92,8 @@ void OnBCSystemCapabilityUpdatedNotification::Run() {
if (hmi_capabilities_.phone_capability()) {
msg_params[strings::system_capability][strings::phone_capability] =
*hmi_capabilities_.phone_capability();
+ } else {
+ return;
}
break;
}
@@ -90,6 +104,8 @@ void OnBCSystemCapabilityUpdatedNotification::Run() {
if (hmi_capabilities_.rc_capability()) {
msg_params[strings::system_capability][strings::rc_capability] =
*hmi_capabilities_.rc_capability();
+ } else {
+ return;
}
break;
}
@@ -98,6 +114,8 @@ void OnBCSystemCapabilityUpdatedNotification::Run() {
msg_params[strings::system_capability]
[strings::video_streaming_capability] =
*hmi_capabilities_.video_streaming_capability();
+ } else {
+ return;
}
break;
case hmi_apis::Common_SystemCapabilityType::APP_SERVICES: {
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_system_capability_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_system_capability_request.cc
index b551db0008..63a4416139 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_system_capability_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_system_capability_request.cc
@@ -83,10 +83,20 @@ void GetSystemCapabilityRequest::Run() {
switch (response_type) {
case mobile_apis::SystemCapabilityType::NAVIGATION: {
+ smart_objects::SmartObject nav_capability(smart_objects::SmartType_Map);
+ bool has_nav_capability = false;
if (hmi_capabilities.navigation_capability()) {
+ has_nav_capability = true;
+ auto nav_capability = *hmi_capabilities.navigation_capability();
+ }
+
+ has_nav_capability = application_manager_.GetAppServiceManager()
+ .UpdateNavigationCapabilities(nav_capability) ||
+ has_nav_capability;
+
+ if (has_nav_capability) {
response_params[strings::system_capability]
- [strings::navigation_capability] =
- *hmi_capabilities.navigation_capability();
+ [strings::navigation_capability] = nav_capability;
} else {
SendResponse(false, mobile_apis::Result::DATA_NOT_AVAILABLE);
return;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_capability_updated_notification.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_capability_updated_notification.cc
index 0745bc08dc..b5e3a73ee4 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_capability_updated_notification.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_capability_updated_notification.cc
@@ -36,9 +36,21 @@ void OnSystemCapabilityUpdatedNotification::Run() {
switch (system_capability_type) {
case mobile_apis::SystemCapabilityType::NAVIGATION: {
+ smart_objects::SmartObject nav_capability(smart_objects::SmartType_Map);
+ bool has_nav_capability = false;
if (hmi_capabilities_.navigation_capability()) {
+ has_nav_capability = true;
+ nav_capability = *hmi_capabilities_.navigation_capability();
+ }
+ has_nav_capability = application_manager_.GetAppServiceManager()
+ .UpdateNavigationCapabilities(nav_capability) ||
+ has_nav_capability;
+
+ if (has_nav_capability) {
msg_params[strings::system_capability][strings::navigation_capability] =
- *hmi_capabilities_.navigation_capability();
+ nav_capability;
+ } else {
+ return;
}
break;
}
@@ -46,6 +58,8 @@ void OnSystemCapabilityUpdatedNotification::Run() {
if (hmi_capabilities_.phone_capability()) {
msg_params[strings::system_capability][strings::phone_capability] =
*hmi_capabilities_.phone_capability();
+ } else {
+ return;
}
break;
}
@@ -56,6 +70,8 @@ void OnSystemCapabilityUpdatedNotification::Run() {
if (hmi_capabilities_.rc_capability()) {
msg_params[strings::system_capability][strings::rc_capability] =
*hmi_capabilities_.rc_capability();
+ } else {
+ return;
}
break;
}
@@ -64,6 +80,8 @@ void OnSystemCapabilityUpdatedNotification::Run() {
msg_params[strings::system_capability]
[strings::video_streaming_capability] =
*hmi_capabilities_.video_streaming_capability();
+ } else {
+ return;
}
break;
case mobile_apis::SystemCapabilityType::APP_SERVICES: {