diff options
6 files changed, 26 insertions, 18 deletions
diff --git a/src/appMain/hmi_capabilities.json b/src/appMain/hmi_capabilities.json index 8adb8da4b7..e5ee4f00b6 100755 --- a/src/appMain/hmi_capabilities.json +++ b/src/appMain/hmi_capabilities.json @@ -1160,6 +1160,12 @@ "shortPressAvailable": true, "longPressAvailable": true, "upDownAvailable": true + }, + { + "name" : "CUSTOM_BUTTON", + "longPressAvailable" : true, + "shortPressAvailable" : true, + "upDownAvailable" : true } ], "presetBankCapabilities": { diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/mobile/register_app_interface_request.h b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/mobile/register_app_interface_request.h index ae52caf0f7..b3359f7752 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/mobile/register_app_interface_request.h +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/include/sdl_rpc_plugin/commands/mobile/register_app_interface_request.h @@ -210,10 +210,9 @@ class RegisterAppInterfaceRequest const std::string& param, const std::string& backup_value); /** - * @brief Sends ButtonSubscription notification at start up - * to notify HMI that app subscribed on the custom button by default. + * @brief Sends ButtonSubscription request if approved by hmi_capabilities */ - void SendSubscribeCustomButtonNotification(); + void SendSubscribeCustomButtonRequest(); /** * @brief IsApplicationSwitched checks whether application is switched diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc index a43603294a..53820eccbb 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc @@ -703,8 +703,11 @@ void RegisterAppInterfaceRequest::Run() { SendOnAppRegisteredNotificationToHMI( application, is_resumption_required && !is_resumption_failed_); - // By default app subscribed to CUSTOM_BUTTON - SendSubscribeCustomButtonNotification(); + if (CheckHMICapabilities(mobile_apis::ButtonName::CUSTOM_BUTTON)) { + SDL_LOG_DEBUG("CUSTOM_BUTTON available"); + SendSubscribeCustomButtonRequest(); + } + SendChangeRegistrationOnHMI(application); if (is_resumption_required) { @@ -1461,7 +1464,7 @@ void RegisterAppInterfaceRequest::CheckResponseVehicleTypeParam( } } -void RegisterAppInterfaceRequest::SendSubscribeCustomButtonNotification() { +void RegisterAppInterfaceRequest::SendSubscribeCustomButtonRequest() { SDL_LOG_AUTO_TRACE(); using namespace smart_objects; SmartObject msg_params = SmartObject(SmartType_Map); diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc index 5d940c4f4c..0624c873fa 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc @@ -461,6 +461,17 @@ TEST_F(RegisterAppInterfaceRequestTest, Run_MinimalData_SUCCESS) { .WillByDefault( Return(application_manager::HmiInterfaces::HMI_INTERFACE_Buttons)); + ON_CALL(mock_hmi_capabilities_, is_ui_cooperating()) + .WillByDefault(Return(true)); + + MessageSharedPtr button_caps_ptr = + CreateMessage(smart_objects::SmartType_Map); + (*button_caps_ptr)[0][am::hmi_response::button_name] = + mobile_apis::ButtonName::CUSTOM_BUTTON; + + ON_CALL(mock_hmi_capabilities_, button_capabilities()) + .WillByDefault(Return(button_caps_ptr)); + EXPECT_CALL( mock_rpc_service_, ManageHMICommand( @@ -587,11 +598,6 @@ TEST_F(RegisterAppInterfaceRequestTest, EXPECT_CALL( mock_rpc_service_, ManageHMICommand( - HMIResultCodeIs(hmi_apis::FunctionID::Buttons_SubscribeButton), _)) - .WillOnce(Return(true)); - EXPECT_CALL( - mock_rpc_service_, - ManageHMICommand( HMIResultCodeIs(hmi_apis::FunctionID::VR_ChangeRegistration), _)) .WillOnce(Return(true)); EXPECT_CALL( @@ -851,11 +857,6 @@ TEST_F(RegisterAppInterfaceRequestTest, EXPECT_CALL( mock_rpc_service_, ManageHMICommand( - HMIResultCodeIs(hmi_apis::FunctionID::Buttons_SubscribeButton), _)) - .WillOnce(Return(true)); - EXPECT_CALL( - mock_rpc_service_, - ManageHMICommand( HMIResultCodeIs(hmi_apis::FunctionID::VR_ChangeRegistration), _)) .WillOnce(Return(true)); EXPECT_CALL( diff --git a/src/components/application_manager/test/hmi_capabilities_test.cc b/src/components/application_manager/test/hmi_capabilities_test.cc index c83dd76978..2127f46b69 100644 --- a/src/components/application_manager/test/hmi_capabilities_test.cc +++ b/src/components/application_manager/test/hmi_capabilities_test.cc @@ -286,7 +286,6 @@ TEST_F( // Count of buttons in json file const size_t btn_length = buttons_capabilities_so.length(); - EXPECT_EQ(16ull, btn_length); for (size_t index = 0; index < btn_length; ++index) { EXPECT_TRUE(buttons_capabilities_so [index][rc_rpc_plugin::enums_value::kShortPressAvailable] diff --git a/src/components/include/application_manager/hmi_capabilities.h b/src/components/include/application_manager/hmi_capabilities.h index 93f3db76cb..93cb09737d 100644 --- a/src/components/include/application_manager/hmi_capabilities.h +++ b/src/components/include/application_manager/hmi_capabilities.h @@ -274,7 +274,7 @@ class HMICapabilities { /** * @brief Sets supported Button's capabilities - * @param soft_button_capabilities supported Button's capabilities + * @param button_capabilities supported Button's capabilities */ virtual void set_button_capabilities( const smart_objects::SmartObject& button_capabilities) = 0; |