Camera: fix testCapabilities for legacy devices
Bug: 18977415
Change-Id: Ieb571ca98c7ad525de118577c8f5f12385600972
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataTest.java b/tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataTest.java
index d9e53f3..a5ed0e1 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataTest.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/StaticMetadataTest.java
@@ -306,14 +306,24 @@
requestKeys.add(CaptureRequest.TONEMAP_CURVE);
requestKeys.add(CaptureRequest.COLOR_CORRECTION_ABERRATION_MODE);
- int[] tonemapModes = mStaticInfo.getAvailableToneMapModesChecked();
- List<Integer> modeList = Arrays.asList(CameraTestUtils.toObject(tonemapModes));
- Boolean contrastCurveModeSupported =
- modeList.contains(CameraMetadata.TONEMAP_MODE_CONTRAST_CURVE);
- int[] colorAberrationModes = mStaticInfo.getAvailableColorAberrationModesChecked();
- modeList = Arrays.asList(CameraTestUtils.toObject(colorAberrationModes));
- Boolean offColorAberrationModeSupported =
- modeList.contains(CameraMetadata.COLOR_CORRECTION_ABERRATION_MODE_OFF);
+ // Legacy mode always doesn't support these requirements
+ Boolean contrastCurveModeSupported = false;
+ Boolean offColorAberrationModeSupported = false;
+ if (mStaticInfo.isHardwareLevelLimitedOrBetter()) {
+ int[] tonemapModes = mStaticInfo.getAvailableToneMapModesChecked();
+ List<Integer> modeList = (tonemapModes.length == 0) ?
+ new ArrayList<Integer>() :
+ Arrays.asList(CameraTestUtils.toObject(tonemapModes));
+ contrastCurveModeSupported =
+ modeList.contains(CameraMetadata.TONEMAP_MODE_CONTRAST_CURVE);
+ int[] colorAberrationModes =
+ mStaticInfo.getAvailableColorAberrationModesChecked();
+ modeList = (colorAberrationModes.length == 0) ?
+ new ArrayList<Integer>() :
+ Arrays.asList(CameraTestUtils.toObject(colorAberrationModes));
+ offColorAberrationModeSupported =
+ modeList.contains(CameraMetadata.COLOR_CORRECTION_ABERRATION_MODE_OFF);
+ }
additionalRequirements.add(new Pair<String, Boolean>(
"Tonemap mode must include CONTRAST_CURVE", contrastCurveModeSupported));
additionalRequirements.add(new Pair<String, Boolean>(
@@ -365,7 +375,7 @@
// No further check is needed if we've found why capability cannot be advertised
if (!meetRequirement) {
Log.v(TAG, String.format(
- "Camera %s doesn't list capability %s becasue of requirement: %s",
+ "Camera %s doesn't list capability %s because of requirement: %s",
mCameraId, capabilityName, requirement));
return;
}