*/
OnAppPermissionConsent: function(consentedFunctions, source, appID) {
- Em.Logger.log("FFW.BasicCommunication.OnAppPermissionConsent");
+ Em.Logger.log("FFW.SDL.OnAppPermissionConsent");
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "method": "BasicCommunication.OnAppPermissionConsent",
+ "method": "SDL.OnAppPermissionConsent",
"params": {
- "consentedFunctions": allowed,
+ "consentedFunctions": consentedFunctions,
"source": source
}
};
void CheckAppPolicyState(const std::string& application_id);
/**
+ * Starts proccess updating policy table
+ */
+ void StartPTExchange(bool skip_device_selection = false);
+
+ /**
* Lets client to notify PolicyHandler that more kilometers expired
* @param kms New value of odometer
*/
void PTExchangeAtIgnition();
/**
- * Initializes PT exchange at user request
- * @param correlation_id correlation id of request
- */
- void PTExchangeAtUserRequest(uint32_t correlation_id);
-
- /**
* @brief Save device info for specific device to policy table
* @param device_id Device mac address
* @param device_info Device params
void OnGetStatusUpdate(const uint32_t correlation_id);
/**
- * @brief Get Urls for service
- * @param
- */
-
-
- /**
* @brief Send notification to HMI with changed policy update status
* @param status Current policy update state
*/
void OnCurrentDeviceIdUpdateRequired(const std::string& policy_app_id);
/**
- * @brief Set parameters from OnSystemInfoChanged to policy table
- * @param language System language
- */
- void OnSystemInfoChanged(const std::string& language);
-
- /**
- * @brief Save data from GetSystemInfo request to policy table
- * @param ccpu_version CCPU version
- * @param wers_country_code WERS country code
- * @param language System language
- */
- void OnGetSystemInfo(const std::string& ccpu_version,
- const std::string& wers_country_code,
- const std::string& language);
-
- /**
- * @brief Send request to HMI to get update on system parameters
- */
- virtual void OnSystemInfoUpdateRequired();
-
- /**
* Adds statistics info
* @param type type of info
*/
*/
void OnSystemError(int code);
- /**
- * @brief Choose application id to be used for snapshot sending
- * @return Application id or 0, if there are no applications registered
- */
- uint32_t GetAppIdForSending();
-
protected:
/**
* Starts next retry exchange policy table
*/
void PTExchangeAtOdometer(int kilometers);
+ private:
/**
- * Starts proccess updating policy table
+ * @brief Choose application id to be used for snapshot sending
+ * @return Application id or 0, if there are no applications registered
*/
- void StartPTExchange(bool skip_device_selection = false);
+ uint32_t GetAppIdForSending();
- private:
/**
* @brief Choose device according to app HMI status and user consent for
* device
namespace commands {
OnAppPermissionConsentNotification::OnAppPermissionConsentNotification(const MessageSharedPtr& message)
- : NotificationFromHMI(message) {
+ : NotificationFromHMI(message) {
}
OnAppPermissionConsentNotification::~OnAppPermissionConsentNotification() {
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;
}
}
- if (msg_params.keyExists("consentedFunctions")) {
- smart_objects::SmartArray* user_consent =
+ 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;
- }
-
- permission_consent.group_permissions.push_back(permissions);
+ 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.consent_source = msg_params["source"].asString();
-
- policy::PolicyHandler::instance()->OnAppPermissionConsent(
- permission_consent);
+ permission_consent.group_permissions.push_back(permissions);
}
+
+ permission_consent.consent_source = msg_params["source"].asString();
+
+ policy::PolicyHandler::instance()->OnAppPermissionConsent(permission_consent);
}
} // namespace commands
#include "application_manager/commands/hmi/mixing_audio_supported_response.h"
#include "application_manager/commands/hmi/on_allow_sdl_functionality_notification.h"
#include "application_manager/commands/hmi/on_app_permission_changed_notification.h"
+#include "application_manager/commands/hmi/on_app_permission_consent_notification.h"
#include "application_manager/commands/hmi/on_app_activated_notification.h"
#include "application_manager/commands/hmi/on_sdl_consent_needed_notification.h"
#include "application_manager/commands/hmi/on_exit_all_applications_notification.h"
command.reset(new commands::OnStatusUpdateNotification(message));
break;
}
+ case hmi_apis::FunctionID::SDL_OnAppPermissionConsent: {
+ command.reset(new commands::OnAppPermissionConsentNotification(message));
+ break;
+ }
case hmi_apis::FunctionID::BasicCommunication_MixingAudioSupported: {
if (is_response) {
command.reset(new commands::MixingAudioSupportedResponse(message));
policy_manager_->set_listener(this);
#if defined (EXTENDED_POLICY)
exchange_handler_ = new PTExchangeHandlerImpl(this);
+ //exchange_handler_ = new PTExchangeHandlerExt(this);
#else
exchange_handler_ = new PTExchangeHandlerImpl(this);
#endif
ConvertUpdateStatus(status));
}
+void PolicyHandler::OnCurrentDeviceIdUpdateRequired(
+ const std::string& policy_app_id) {
+ LOG4CXX_INFO(logger_, "OnCurrentDeviceIdUpdateRequired");
+ // TODO(AOleynik): Get registered device info from SDL
+ application_manager::ApplicationSharedPtr app =
+ application_manager::ApplicationManagerImpl::instance()
+ ->application_by_policy_id(policy_app_id);
+
+ if (!app.valid()) {
+ LOG4CXX_WARN(logger_, "Application with id '" << policy_app_id << "' "
+ "not found within registered applications.");
+ policy_manager_->UpdateCurrentDeviceId(std::string());
+ return;
+ }
+ DeviceParams device_param;
+ application_manager::MessageHelper::GetDeviceInfoForApp(app->app_id(),
+ &device_param);
+ policy_manager_->UpdateCurrentDeviceId(device_param.device_mac_address);
+}
+
void PolicyHandler::OnAppRevoked(const std::string& policy_app_id) {
LOG4CXX_INFO(logger_, "OnAppRevoked");
if (!policy_manager_) {
" has no application id.");
return false;
}
-
url = policy_manager_->GetUpdateUrl(mobile_app_id);
}
LOG4CXX_INFO(
MessageBrokerController::subscribeTo("VR.Stopped");
MessageBrokerController::subscribeTo("BasicCommunication.OnSystemRequest");
MessageBrokerController::subscribeTo("BasicCommunication.OnIgnitionCycleOver");
+ MessageBrokerController::subscribeTo("SDL.OnAppPermissionConsent");
MessageBrokerController::subscribeTo("SDL.OnAllowSDLFunctionality");
LOG4CXX_INFO(logger_, "Subscribed to notifications.");
-Subproject commit 35e1673bd409393837b254158c7c8d2ba34acd53
+Subproject commit 3bef801ae41c14942d8b1a79335fb60e9892254f