diff options
author | Polina Vyshnevska <PVyshnevska@luxoft.com> | 2014-04-10 16:13:41 +0300 |
---|---|---|
committer | Justin Dickow <jjdickow@gmail.com> | 2014-07-09 14:12:28 -0400 |
commit | 6333ffa695758c6553385e52ba4c51dd834f66b7 (patch) | |
tree | 4ad4d91f7009c7dab0c995986af478cf45e361c9 | |
parent | 521c9ca3e742c0dbba92dd4d801a5f357a1987cf (diff) | |
download | smartdevicelink-6333ffa695758c6553385e52ba4c51dd834f66b7.tar.gz |
Hot fix for on app consent crash.
-rw-r--r-- | src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc b/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc index b34798499..708766d56 100644 --- a/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc +++ b/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc @@ -41,7 +41,7 @@ namespace application_manager { namespace commands { OnAppPermissionConsentNotification::OnAppPermissionConsentNotification(const MessageSharedPtr& message) - : NotificationFromHMI(message) { + : NotificationFromHMI(message) { } OnAppPermissionConsentNotification::~OnAppPermissionConsentNotification() { @@ -57,42 +57,45 @@ void OnAppPermissionConsentNotification::Run() { if (msg_params.keyExists(strings::app_id)) { uint32_t connection_key = msg_params[strings::app_id].asUInt(); ApplicationSharedPtr app = - application_manager::ApplicationManagerImpl::instance() - ->application(connection_key); + application_manager::ApplicationManagerImpl::instance() + ->application(connection_key); if (app.valid()) { permission_consent.policy_app_id = app->mobile_app_id()->asString(); policy::DeviceParams device_params; application_manager::MessageHelper::GetDeviceInfoForHandle( - app->device(), - &device_params); + app->device(), + &device_params); permission_consent.device_id = device_params.device_mac_address; } } - smart_objects::SmartArray* user_consent = + if (msg_params.keyExists("consentedFunctions")) { + smart_objects::SmartArray* user_consent = msg_params["consentedFunctions"].asArray(); - smart_objects::SmartArray::const_iterator it = user_consent->begin(); - smart_objects::SmartArray::const_iterator it_end = user_consent->end(); - for (; it != it_end; ++it) { - policy::FunctionalGroupPermission permissions; - permissions.group_id = (*it)["id"].asInt(); - permissions.group_alias = (*it)["name"].asString(); - if ((*it).keyExists("allowed")) { - permissions.state = (*it)["allowed"].asBool() ? policy::kAllowed : - policy::kDisallowed; - } else { - permissions.state = policy::kUndefined; + smart_objects::SmartArray::const_iterator it = user_consent->begin(); + smart_objects::SmartArray::const_iterator it_end = user_consent->end(); + for (; it != it_end; ++it) { + policy::FunctionalGroupPermission permissions; + permissions.group_id = (*it)["id"].asInt(); + permissions.group_alias = (*it)["name"].asString(); + if ((*it).keyExists("allowed")) { + permissions.state = (*it)["allowed"].asBool() ? policy::kAllowed : + policy::kDisallowed; + } else { + permissions.state = policy::kUndefined; + } + + permission_consent.group_permissions.push_back(permissions); } - permission_consent.group_permissions.push_back(permissions); - } - - permission_consent.consent_source = msg_params["source"].asString(); + permission_consent.consent_source = msg_params["source"].asString(); - policy::PolicyHandler::instance()->OnAppPermissionConsent(permission_consent); + policy::PolicyHandler::instance()->OnAppPermissionConsent( + permission_consent); + } } } // namespace commands |