diff options
author | Julian Kast <julian.kast@live.com> | 2022-09-12 15:19:27 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-12 15:19:27 -0400 |
commit | bf62616ec1928fba468515466f9be32c46bf4443 (patch) | |
tree | cb1f12aa8f806b39c3da09e1761b93829c11c62f | |
parent | b99a2cabbf5d19c027e2443d68b21e7881d55ef6 (diff) | |
download | sdl_android-bf62616ec1928fba468515466f9be32c46bf4443.tar.gz |
Bugfix/issue 1824 Add missing DisplayCapabilities info and window ID (#1825)
* Add cached ScreenParams to new DisplayCapabilities
* Update Unit test
* Remove whitespace
* Add Comment based off review
* Update MediaClockFormats in deprecated capability, and window id in windowCapability
* Update SystemCapabilityManagerTests to set an actual value in mediaClockFormats
* Add Comment
* Clone WindowCapability to prevent modification of stored WindowCapability in SystemCapabilityManager
* update naming
2 files changed, 16 insertions, 2 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManagerTests.java index 03854d3ee..abe187cc8 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManagerTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManagerTests.java @@ -176,8 +176,9 @@ public class SystemCapabilityManagerTests { convertedCapabilities.setImageFields(defaultMainWindow.getImageFields()); convertedCapabilities.setTemplatesAvailable(defaultMainWindow.getTemplatesAvailable()); convertedCapabilities.setNumCustomPresetsAvailable(defaultMainWindow.getNumCustomPresetsAvailable()); - convertedCapabilities.setMediaClockFormats(new ArrayList<MediaClockFormat>()); // mandatory field but can be empty + convertedCapabilities.setMediaClockFormats(TestValues.GENERAL_MEDIACLOCKFORMAT_LIST); // mandatory field but can be empty convertedCapabilities.setGraphicSupported(defaultMainWindow.getImageTypeSupported().contains(ImageType.DYNAMIC)); + convertedCapabilities.setScreenParams(TestValues.GENERAL_SCREENPARAMS); return convertedCapabilities; } diff --git a/base/src/main/java/com/smartdevicelink/managers/lifecycle/BaseSystemCapabilityManager.java b/base/src/main/java/com/smartdevicelink/managers/lifecycle/BaseSystemCapabilityManager.java index 1f6c663a8..927200876 100644 --- a/base/src/main/java/com/smartdevicelink/managers/lifecycle/BaseSystemCapabilityManager.java +++ b/base/src/main/java/com/smartdevicelink/managers/lifecycle/BaseSystemCapabilityManager.java @@ -172,6 +172,15 @@ abstract class BaseSystemCapabilityManager { // if there are imageTypes in the response, we must assume graphics are supported convertedCapabilities.setGraphicSupported(defaultMainWindow.getImageTypeSupported() != null && defaultMainWindow.getImageTypeSupported().size() > 0); + if (cachedSystemCapabilities.containsKey(SystemCapabilityType.DISPLAY)) { + // Copied from the RAI response, since this parameter is not present in WindowCapability + DisplayCapabilities displayCapabilitiesOld = (DisplayCapabilities) cachedSystemCapabilities.get(SystemCapabilityType.DISPLAY); + convertedCapabilities.setScreenParams(displayCapabilitiesOld.getScreenParams()); + if (displayCapabilitiesOld.getMediaClockFormats() != null) { + convertedCapabilities.setMediaClockFormats(displayCapabilitiesOld.getMediaClockFormats()); + } + } + return convertedCapabilities; } @@ -246,7 +255,11 @@ abstract class BaseSystemCapabilityManager { for (WindowCapability windowCapability : display.getWindowCapabilities()) { int currentWindowID = windowCapability.getWindowID() != null ? windowCapability.getWindowID() : PredefinedWindows.DEFAULT_WINDOW.getValue(); if (currentWindowID == windowID) { - return windowCapability; + // Clone WindowCapability to prevent modification of stored WindowCapability in SystemCapabilityManager + WindowCapability windowCapabilityCopy = (WindowCapability) windowCapability.clone(); + // A null windowID is assumed to be the DefaultWindow according to the spec, but that can be hard for developers to check, so set it explicitly. + windowCapabilityCopy.setWindowID(windowID); + return windowCapabilityCopy; } } return null; |