diff options
author | JackLivio <jack@livio.io> | 2019-10-10 13:12:37 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-10 13:12:37 -0400 |
commit | 0b33bf9a7ab8dc6a056ba23527eff1f914f3fae8 (patch) | |
tree | a63e9a250344518d8232082322a65bb03b5e188d /src | |
parent | 9ac782b490f14f3fb18f36aad81a49f72e627909 (diff) | |
download | sdl_core-0b33bf9a7ab8dc6a056ba23527eff1f914f3fae8.tar.gz |
Replace DCHECK in Create Window Request (#3068)
* Replace dcheck in create window
* Update src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_window_request.cc
Co-Authored-By: Jacob Keeler <jacob.keeler@livioradio.com>
* Source capabilities from both app and hmi data
Diffstat (limited to 'src')
2 files changed, 11 insertions, 2 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_window_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_window_request.cc index 21b54b4e9f..b69b0ee801 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_window_request.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_window_request.cc @@ -307,7 +307,10 @@ bool CreateWindowRequest::DoesExceedMaxAllowedWindows( const auto window_type = static_cast<mobile_apis::WindowType::eType>( (*message_)[strings::msg_params][strings::window_type].asInt()); - const auto display_capabilities = app->display_capabilities(); + auto display_capabilities = hmi_capabilities_.system_display_capabilities(); + if (app->display_capabilities()) { + display_capabilities = app->display_capabilities(); + } if (!display_capabilities) { LOG4CXX_WARN(logger_, "Application has no capabilities"); @@ -333,7 +336,10 @@ bool CreateWindowRequest::DoesExceedMaxAllowedWindows( return false; }); - DCHECK(find_res != windowTypeSupported->end()); + if (find_res == windowTypeSupported->end()) { + LOG4CXX_WARN(logger_, "Requested Window Type is not supported by the HMI"); + return true; + } if (get_current_number_of_windows(window_type) + 1 > (*find_res)[strings::maximum_number_of_windows].asUInt()) { diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/create_window_request_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/create_window_request_test.cc index 02a6591a2d..905c6ceb72 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/create_window_request_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/create_window_request_test.cc @@ -164,6 +164,9 @@ class CreateWindowRequestTest ON_CALL(*mock_app_, display_capabilities()) .WillByDefault(Return(display_capabilities_)); + ON_CALL(mock_hmi_capabilities_, system_display_capabilities()) + .WillByDefault(Return(display_capabilities_)); + window_params_map_lock_ptr_ = std::make_shared<sync_primitives::Lock>(); DataAccessor<am::WindowParamsMap> window_params_map( |