summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Kast <julian.kast@live.com>2022-09-12 15:19:27 -0400
committerGitHub <noreply@github.com>2022-09-12 15:19:27 -0400
commitbf62616ec1928fba468515466f9be32c46bf4443 (patch)
treecb1f12aa8f806b39c3da09e1761b93829c11c62f
parentb99a2cabbf5d19c027e2443d68b21e7881d55ef6 (diff)
downloadsdl_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
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManagerTests.java3
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/lifecycle/BaseSystemCapabilityManager.java15
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;