diff options
Diffstat (limited to 'src/components/application_manager/src/policies/policy_handler.cc')
-rw-r--r-- | src/components/application_manager/src/policies/policy_handler.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index b61a75d7de..cb9b7df3e1 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -600,6 +600,10 @@ void PolicyHandler::OnDeviceConsentChanged(const std::string& device_id, policy_manager->SendNotificationOnPermissionsUpdated(device_id, policy_app_id); + + if (policy_manager->IsPredataPolicy(policy_app_id) && !is_allowed) { + SetHeartBeatTimeout(policy_app_id, (*it_app_list)->app_id()); + } } } } @@ -767,6 +771,23 @@ void PolicyHandler::OnAppPermissionConsentInternal( #endif } +void PolicyHandler::SetHeartBeatTimeout(const std::string& policy_app_id, + const uint32_t app_id) { + SDL_LOG_AUTO_TRACE(); + + const std::shared_ptr<PolicyManager> policy_manager = LoadPolicyManager(); + POLICY_LIB_CHECK_VOID(policy_manager); + + const uint32_t timeout = policy_manager->HeartBeatTimeout(policy_app_id); + if (0 != timeout) { + SDL_LOG_DEBUG("SetHeartBeatTimeout for " << app_id << " is " << timeout); + application_manager_.connection_handler().SetHeartBeatTimeout(app_id, + timeout); + } else { + SDL_LOG_DEBUG("SetHeartBeatTimeout for " << app_id << " ignored"); + } +} + void policy::PolicyHandler::SetDaysAfterEpoch() { const auto policy_manager = LoadPolicyManager(); POLICY_LIB_CHECK_VOID(policy_manager); |