diff options
author | AKalinich-Luxoft <AKalinich@luxoft.com> | 2017-06-09 09:12:46 +0300 |
---|---|---|
committer | AKalinich-Luxoft <AKalinich@luxoft.com> | 2017-12-12 14:11:47 +0200 |
commit | 13c5685d110e2a0c6623e0217a54b4466792657f (patch) | |
tree | 958390e39b02f1cb63aa9654ba96990c1bcb5bc3 /src/components/application_manager/src | |
parent | e96f33b925b782cab8b515b7afd8d49965506010 (diff) | |
download | sdl_core-13c5685d110e2a0c6623e0217a54b4466792657f.tar.gz |
Added missed implementation of OnAwakeSDLNotification
This notification works in pair with OnExitAllApplications(SUSPEND) notification.
However first one is present in code but second one was ommited. There was just empty file.
File with implementation was added to CMakeLists.
Message broker was subscribed to OnAwake notification from HMI.
Added command creation in HMI Command Factory.
Diffstat (limited to 'src/components/application_manager/src')
-rw-r--r-- | src/components/application_manager/src/commands/hmi/basic_communication_on_awake_sdl.cc | 44 | ||||
-rw-r--r-- | src/components/application_manager/src/hmi_command_factory.cc | 6 |
2 files changed, 49 insertions, 1 deletions
diff --git a/src/components/application_manager/src/commands/hmi/basic_communication_on_awake_sdl.cc b/src/components/application_manager/src/commands/hmi/basic_communication_on_awake_sdl.cc index 80b1edb5bb..3db61cf177 100644 --- a/src/components/application_manager/src/commands/hmi/basic_communication_on_awake_sdl.cc +++ b/src/components/application_manager/src/commands/hmi/basic_communication_on_awake_sdl.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Ford Motor Company + * Copyright (c) 2017, Ford Motor Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,3 +29,45 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ + +#include "application_manager/commands/hmi/basic_communication_on_awake_sdl.h" +#include "application_manager/message_helper.h" +#include "application_manager/resumption/resume_ctrl.h" + +namespace application_manager { + +namespace commands { + +OnAwakeSDLNotification::OnAwakeSDLNotification( + const MessageSharedPtr& message, ApplicationManager& application_manager) + : NotificationFromHMI(message, application_manager) {} + +OnAwakeSDLNotification::~OnAwakeSDLNotification() {} + +void OnAwakeSDLNotification::Run() { + LOG4CXX_AUTO_TRACE(logger_); + + if (application_manager_.resume_controller().is_suspended()) { + { + application_manager_.resume_controller().set_is_suspended(false); + DataAccessor<ApplicationSet> accessor = + application_manager_.applications(); + ApplicationSetIt it = accessor.GetData().begin(); + ApplicationSetIt itEnd = accessor.GetData().end(); + for (; it != itEnd; ++it) { + if ((*it).get()) { + if ((*it)->flag_sending_hash_change_after_awake()) { + MessageHelper::SendHashUpdateNotification((*it)->app_id(), + application_manager_); + (*it)->set_flag_sending_hash_change_after_awake(false); + } + } + } + } + application_manager_.resume_controller().OnAwake(); + } +} + +} // namespace commands + +} // namespace application_manager diff --git a/src/components/application_manager/src/hmi_command_factory.cc b/src/components/application_manager/src/hmi_command_factory.cc index ffaa8d9b5f..a7f3ce7e6b 100644 --- a/src/components/application_manager/src/hmi_command_factory.cc +++ b/src/components/application_manager/src/hmi_command_factory.cc @@ -269,6 +269,7 @@ #include "application_manager/commands/hmi/on_system_error_notification.h" #include "application_manager/commands/hmi/basic_communication_system_request.h" #include "application_manager/commands/hmi/basic_communication_system_response.h" +#include "application_manager/commands/hmi/basic_communication_on_awake_sdl.h" #include "application_manager/commands/hmi/sdl_policy_update.h" #include "application_manager/commands/hmi/sdl_policy_update_response.h" #include "application_manager/commands/hmi/on_received_policy_update.h" @@ -781,6 +782,11 @@ CommandSharedPtr HMICommandFactory::CreateCommand( message, application_manager)); break; } + case hmi_apis::FunctionID::BasicCommunication_OnAwakeSDL: { + command.reset( + new commands::OnAwakeSDLNotification(message, application_manager)); + break; + } case hmi_apis::FunctionID::BasicCommunication_OnExitApplication: { command.reset(new commands::OnExitApplicationNotification( message, application_manager)); |