diff options
8 files changed, 53 insertions, 41 deletions
diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_request.h b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_request.h index 90d7d0d4a1..4a883b92ee 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_request.h +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_request.h @@ -43,7 +43,8 @@ namespace commands { /** * @brief UnpublishAppServiceRequest command class **/ -class UnpublishAppServiceRequest : public app_mngr::commands::CommandRequestImpl { +class UnpublishAppServiceRequest + : public app_mngr::commands::CommandRequestImpl { public: /** * @brief UnpublishAppServiceRequest class constructor diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_response.h b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_response.h index 16e6d23c41..512e39eea0 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_response.h +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/unpublish_app_service_response.h @@ -43,7 +43,8 @@ namespace commands { /** * @brief UnpublishAppServiceResponse command class **/ -class UnpublishAppServiceResponse : public app_mngr::commands::CommandResponseImpl { +class UnpublishAppServiceResponse + : public app_mngr::commands::CommandResponseImpl { public: /** * @brief UnpublishAppServiceResponse class constructor diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_hmi_command_factory.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_hmi_command_factory.cc index 02b5d897e5..3090ea8ced 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_hmi_command_factory.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_hmi_command_factory.cc @@ -131,7 +131,8 @@ app_mngr::CommandCreator& AppServiceHmiCommandFactory::buildCommandCreator( case hmi_apis::FunctionID::AppService_UnpublishAppService: return hmi_apis::messageType::request == message_type ? factory.GetCreator<commands::ASUnpublishAppServiceRequest>() - : factory.GetCreator<commands::ASUnpublishAppServiceResponse>(); + : factory + .GetCreator<commands::ASUnpublishAppServiceResponse>(); case hmi_apis::FunctionID::AppService_OnAppServiceData: return app_mngr::commands::Command::CommandSource::SOURCE_HMI == source ? factory.GetCreator< diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_request.cc index c19d588c09..7e7757a3d4 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_request.cc @@ -31,10 +31,10 @@ */ #include "app_service_rpc_plugin/commands/hmi/as_unpublish_app_service_request.h" +#include "application_manager/app_service_manager.h" #include "application_manager/application_impl.h" #include "application_manager/rpc_service.h" #include "interfaces/MOBILE_API.h" -#include "application_manager/app_service_manager.h" namespace app_service_rpc_plugin { using namespace application_manager; @@ -47,20 +47,22 @@ ASUnpublishAppServiceRequest::ASUnpublishAppServiceRequest( app_mngr::HMICapabilities& hmi_capabilities, policy::PolicyHandlerInterface& policy_handler) : RequestFromHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handler) {} + application_manager, + rpc_service, + hmi_capabilities, + policy_handler) {} ASUnpublishAppServiceRequest::~ASUnpublishAppServiceRequest() {} void ASUnpublishAppServiceRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); - std::string service_id = (*message_)[strings::msg_params][strings::service_id].asString(); + std::string service_id = + (*message_)[strings::msg_params][strings::service_id].asString(); + + bool ret = application_manager_.GetAppServiceManager().UnpublishAppService( + service_id); - bool ret = application_manager_.GetAppServiceManager().UnpublishAppService(service_id); - if (!ret) { SendErrorResponse( (*message_)[strings::params][strings::correlation_id].asUInt(), @@ -72,11 +74,11 @@ void ASUnpublishAppServiceRequest::Run() { } SendResponse(true, - (*message_)[strings::params][strings::correlation_id].asUInt(), - hmi_apis::FunctionID::AppService_UnpublishAppService, - hmi_apis::Common_Result::SUCCESS, - NULL, - application_manager::commands::Command::SOURCE_SDL_TO_HMI); + (*message_)[strings::params][strings::correlation_id].asUInt(), + hmi_apis::FunctionID::AppService_UnpublishAppService, + hmi_apis::Common_Result::SUCCESS, + NULL, + application_manager::commands::Command::SOURCE_SDL_TO_HMI); } } // namespace commands diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_response.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_response.cc index 47cc6ed295..0c8b479da8 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_response.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_unpublish_app_service_response.cc @@ -46,15 +46,16 @@ ASUnpublishAppServiceResponse::ASUnpublishAppServiceResponse( app_mngr::HMICapabilities& hmi_capabilities, policy::PolicyHandlerInterface& policy_handler) : ResponseToHMI(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handler) {} + application_manager, + rpc_service, + hmi_capabilities, + policy_handler) {} ASUnpublishAppServiceResponse::~ASUnpublishAppServiceResponse() {} void ASUnpublishAppServiceResponse::Run() { LOG4CXX_AUTO_TRACE(logger_); + rpc_service_.SendMessageToHMI(message_); } } // namespace commands diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_request.cc index 2aef9709b2..453de1d15f 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_request.cc @@ -58,19 +58,21 @@ UnpublishAppServiceRequest::~UnpublishAppServiceRequest() {} void UnpublishAppServiceRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); - std::string service_id = (*message_)[strings::msg_params][strings::service_id].asString(); + std::string service_id = + (*message_)[strings::msg_params][strings::service_id].asString(); - bool ret = application_manager_.GetAppServiceManager().UnpublishAppService(service_id); + bool ret = application_manager_.GetAppServiceManager().UnpublishAppService( + service_id); if (!ret) { - SendResponse(false, - mobile_apis::Result::INVALID_ID, - "The app service with that requested service ID does not exist"); + SendResponse( + false, + mobile_apis::Result::INVALID_ID, + "The app service with that requested service ID does not exist"); return; } SendResponse(true, mobile_apis::Result::SUCCESS, NULL, NULL); - } } // namespace commands diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_response.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_response.cc index 5551d6bdf0..22450ecc4c 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_response.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/unpublish_app_service_response.cc @@ -46,10 +46,10 @@ UnpublishAppServiceResponse::UnpublishAppServiceResponse( app_mngr::HMICapabilities& hmi_capabilities, policy::PolicyHandlerInterface& policy_handler) : CommandResponseImpl(message, - application_manager, - rpc_service, - hmi_capabilities, - policy_handler) {} + application_manager, + rpc_service, + hmi_capabilities, + policy_handler) {} UnpublishAppServiceResponse::~UnpublishAppServiceResponse() {} diff --git a/src/components/application_manager/src/app_service_manager.cc b/src/components/application_manager/src/app_service_manager.cc index 6925499c0f..f359f59bc3 100644 --- a/src/components/application_manager/src/app_service_manager.cc +++ b/src/components/application_manager/src/app_service_manager.cc @@ -72,10 +72,10 @@ smart_objects::SmartObject AppServiceManager::PublishAppService( std::string service_type = manifest[strings::service_type].asString(); - AppService* found_service = FindServiceByProvider(connection_key, service_type); + AppService* found_service = + FindServiceByProvider(connection_key, service_type); if (found_service) { - LOG4CXX_WARN(logger_, - "Service already exists for this provider, updating"); + LOG4CXX_WARN(logger_, "Service already exists for this provider, updating"); published_services_lock_.Acquire(); found_service->record[strings::service_manifest] = manifest; @@ -85,13 +85,14 @@ smart_objects::SmartObject AppServiceManager::PublishAppService( smart_objects::SmartObject msg_params; msg_params[strings::system_capability][strings::system_capability_type] = - mobile_apis::SystemCapabilityType::APP_SERVICES; + mobile_apis::SystemCapabilityType::APP_SERVICES; - AppServiceUpdated( - updated_service_record, mobile_apis::ServiceUpdateReason::MANIFEST_UPDATE, msg_params); + AppServiceUpdated(updated_service_record, + mobile_apis::ServiceUpdateReason::MANIFEST_UPDATE, + msg_params); MessageHelper::BroadcastCapabilityUpdate(msg_params, app_manager_); - + return updated_service_record; } @@ -151,12 +152,13 @@ smart_objects::SmartObject AppServiceManager::PublishAppService( // Activate the new service if it is the default for its service type, if // no service is active of its service type, or it is a mobile app in full. AppService* active_service = ActiveServiceForType(service_type); - ApplicationSharedPtr app = NULL; + ApplicationSharedPtr app = NULL; if (mobile_service && connection_key) { app = app_manager_.application(connection_key); } - - if (!active_service || app_service.default_service || (mobile_service && app && app->IsFullscreen())) { + + if (!active_service || app_service.default_service || + (mobile_service && app && app->IsFullscreen())) { ActivateAppService(service_id); } @@ -185,7 +187,9 @@ bool AppServiceManager::UnpublishAppService(const std::string service_id) { // Activate embedded service, if available auto embedded_service = EmbeddedServiceForType( record[strings::service_manifest][strings::service_type].asString()); - if (embedded_service) { + if (embedded_service && + (embedded_service->record[strings::service_id].asString().compare( + service_id) > 0)) { embedded_service->record[strings::service_active] = true; AppServiceUpdated(embedded_service->record, mobile_apis::ServiceUpdateReason::ACTIVATED, |