diff options
author | mked-luxoft <mked@luxoft.com> | 2019-07-26 21:36:08 +0300 |
---|---|---|
committer | Andriy Byzhynar (GitHub) <AByzhynar@luxoft.com> | 2019-08-20 21:17:13 +0300 |
commit | e53e40eecc9a851d129d068887f9918b226a67fd (patch) | |
tree | 60af5e7c260fe24d93bc15c356f7e38e13887e03 /src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi | |
parent | 65c409e08f50d2c6743448897bd793d9402e4463 (diff) | |
download | sdl_core-e53e40eecc9a851d129d068887f9918b226a67fd.tar.gz |
Send one OnSystemCapabilitiesUpdated on resumption
Diffstat (limited to 'src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi')
-rw-r--r-- | src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification_from_hmi.cc | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification_from_hmi.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification_from_hmi.cc index d9bb20ceef..863e31bae6 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification_from_hmi.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_bc_system_capability_updated_notification_from_hmi.cc @@ -32,6 +32,7 @@ #include "sdl_rpc_plugin/commands/hmi/on_bc_system_capability_updated_notification_from_hmi.h" +#include "application_manager/display_capabilities_builder.h" #include "application_manager/message_helper.h" #include "interfaces/HMI_API.h" #include "interfaces/MOBILE_API.h" @@ -57,15 +58,17 @@ OnBCSystemCapabilityUpdatedNotificationFromHMI:: OnBCSystemCapabilityUpdatedNotificationFromHMI:: ~OnBCSystemCapabilityUpdatedNotificationFromHMI() {} -bool OnBCSystemCapabilityUpdatedNotificationFromHMI:: - ProcessSystemDisplayCapabilities( - const smart_objects::SmartObject& display_capabilities) { +OnBCSystemCapabilityUpdatedNotificationFromHMI:: + ProcessSystemDisplayCapabilitiesResult + OnBCSystemCapabilityUpdatedNotificationFromHMI:: + ProcessSystemDisplayCapabilities( + const smart_objects::SmartObject& display_capabilities) { LOG4CXX_AUTO_TRACE(logger_); if (!(*message_)[strings::msg_params].keyExists(strings::app_id)) { LOG4CXX_DEBUG(logger_, "Updating general display capabilities"); hmi_capabilities_.set_system_display_capabilities(display_capabilities); - return true; + return ProcessSystemDisplayCapabilitiesResult::SUCCESS; } const auto app_id = @@ -74,7 +77,7 @@ bool OnBCSystemCapabilityUpdatedNotificationFromHMI:: if (!app) { LOG4CXX_ERROR(logger_, "Application with app_id " << app_id << " is not registered"); - return false; + return ProcessSystemDisplayCapabilitiesResult::FAIL; } LOG4CXX_DEBUG(logger_, "Updating display capabilities for app " << app_id); @@ -84,8 +87,14 @@ bool OnBCSystemCapabilityUpdatedNotificationFromHMI:: (*message_)[strings::params][strings::connection_key] = (*message_)[strings::msg_params][strings::app_id]; (*message_)[strings::msg_params].erase(strings::app_id); + if (app->is_resuming()) { + LOG4CXX_DEBUG(logger_, "Application is resuming"); + app->display_capabilities_builder().UpdateDisplayCapabilities( + display_capabilities); + return ProcessSystemDisplayCapabilitiesResult::CAPABILITIES_CACHED; + } - return true; + return ProcessSystemDisplayCapabilitiesResult::SUCCESS; } void OnBCSystemCapabilityUpdatedNotificationFromHMI::Run() { @@ -100,12 +109,17 @@ void OnBCSystemCapabilityUpdatedNotificationFromHMI::Run() { if (mobile_apis::SystemCapabilityType::DISPLAY == system_capability[strings::system_capability_type].asInt() && system_capability.keyExists(strings::display_capabilities)) { - if (!ProcessSystemDisplayCapabilities( - system_capability[strings::display_capabilities])) { + const auto result = ProcessSystemDisplayCapabilities( + system_capability[strings::display_capabilities]); + if (ProcessSystemDisplayCapabilitiesResult::FAIL == result) { LOG4CXX_ERROR(logger_, "Failed to process display capabilities. Notification will " "be ignored"); return; + } else if (ProcessSystemDisplayCapabilitiesResult::CAPABILITIES_CACHED == + result) { + LOG4CXX_TRACE(logger_, "Capabilities are being cached for resuming app"); + return; } } |