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;
                 }