Camera2: Update tests to use different API.

Replace CameraDevice#getProperties with CameraManager#getCameraCharacteristics.

Bug: 10360518
Change-Id: I86880694502e1092dba1a5c45062e3f3cdba9b28
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraCharacteristicsTest.java b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraCharacteristicsTest.java
index 2241568..4745100 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraCharacteristicsTest.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraCharacteristicsTest.java
@@ -26,9 +26,7 @@
 
 import android.content.Context;
 import android.hardware.camera2.CameraCharacteristics;
-import android.hardware.camera2.CameraDevice;
 import android.hardware.camera2.CameraManager;
-import android.os.Handler;
 import android.test.AndroidTestCase;
 
 /**
@@ -37,9 +35,6 @@
 public class CameraCharacteristicsTest extends AndroidTestCase {
     private CameraManager mCameraManager;
 
-    private CameraTestThread mLooperThread;
-    private Handler mHandler;
-
     @Override
     public void setContext(Context context) {
         super.setContext(context);
@@ -50,32 +45,18 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-
-        mLooperThread = new CameraTestThread();
-        mHandler = mLooperThread.start();
     }
 
     @Override
     protected void tearDown() throws Exception {
-        mLooperThread.close();
-        mHandler = null;
-
         super.tearDown();
     }
 
     public void testCameraCharacteristicsAndroidControlAeAvailableAntibandingModes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.aeAvailableAntibandingModes",
                     props.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_ANTIBANDING_MODES));
@@ -85,16 +66,8 @@
     public void testCameraCharacteristicsAndroidControlAeAvailableTargetFpsRanges() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.aeAvailableTargetFpsRanges",
                     props.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES));
@@ -104,16 +77,8 @@
     public void testCameraCharacteristicsAndroidControlAeCompensationRange() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.aeCompensationRange",
                     props.get(CameraCharacteristics.CONTROL_AE_COMPENSATION_RANGE));
@@ -123,16 +88,8 @@
     public void testCameraCharacteristicsAndroidControlAeCompensationStep() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.aeCompensationStep",
                     props.get(CameraCharacteristics.CONTROL_AE_COMPENSATION_STEP));
@@ -142,16 +99,8 @@
     public void testCameraCharacteristicsAndroidControlAfAvailableModes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.afAvailableModes",
                     props.get(CameraCharacteristics.CONTROL_AF_AVAILABLE_MODES));
@@ -161,16 +110,8 @@
     public void testCameraCharacteristicsAndroidControlAvailableEffects() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.availableEffects",
                     props.get(CameraCharacteristics.CONTROL_AVAILABLE_EFFECTS));
@@ -180,16 +121,8 @@
     public void testCameraCharacteristicsAndroidControlAvailableSceneModes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.availableSceneModes",
                     props.get(CameraCharacteristics.CONTROL_AVAILABLE_SCENE_MODES));
@@ -199,16 +132,8 @@
     public void testCameraCharacteristicsAndroidControlAvailableVideoStabilizationModes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.availableVideoStabilizationModes",
                     props.get(CameraCharacteristics.CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES));
@@ -218,16 +143,8 @@
     public void testCameraCharacteristicsAndroidControlAwbAvailableModes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.awbAvailableModes",
                     props.get(CameraCharacteristics.CONTROL_AWB_AVAILABLE_MODES));
@@ -237,16 +154,8 @@
     public void testCameraCharacteristicsAndroidControlMaxRegions() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.control.maxRegions",
                     props.get(CameraCharacteristics.CONTROL_MAX_REGIONS));
@@ -256,16 +165,8 @@
     public void testCameraCharacteristicsAndroidFlashInfoAvailable() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.flash.info.available",
                     props.get(CameraCharacteristics.FLASH_INFO_AVAILABLE));
@@ -275,16 +176,8 @@
     public void testCameraCharacteristicsAndroidJpegAvailableThumbnailSizes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.jpeg.availableThumbnailSizes",
                     props.get(CameraCharacteristics.JPEG_AVAILABLE_THUMBNAIL_SIZES));
@@ -294,16 +187,8 @@
     public void testCameraCharacteristicsAndroidLensFacing() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.facing",
                     props.get(CameraCharacteristics.LENS_FACING));
@@ -313,16 +198,8 @@
     public void testCameraCharacteristicsAndroidLensInfoAvailableApertures() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.info.availableApertures",
                     props.get(CameraCharacteristics.LENS_INFO_AVAILABLE_APERTURES));
@@ -332,16 +209,8 @@
     public void testCameraCharacteristicsAndroidLensInfoAvailableFilterDensities() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.info.availableFilterDensities",
                     props.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FILTER_DENSITIES));
@@ -351,16 +220,8 @@
     public void testCameraCharacteristicsAndroidLensInfoAvailableFocalLengths() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.info.availableFocalLengths",
                     props.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS));
@@ -370,16 +231,8 @@
     public void testCameraCharacteristicsAndroidLensInfoAvailableOpticalStabilization() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.info.availableOpticalStabilization",
                     props.get(CameraCharacteristics.LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION));
@@ -389,16 +242,8 @@
     public void testCameraCharacteristicsAndroidLensInfoHyperfocalDistance() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.info.hyperfocalDistance",
                     props.get(CameraCharacteristics.LENS_INFO_HYPERFOCAL_DISTANCE));
@@ -408,16 +253,8 @@
     public void testCameraCharacteristicsAndroidLensInfoMinimumFocusDistance() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.info.minimumFocusDistance",
                     props.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE));
@@ -427,16 +264,8 @@
     public void testCameraCharacteristicsAndroidLensInfoShadingMapSize() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.lens.info.shadingMapSize",
                     props.get(CameraCharacteristics.LENS_INFO_SHADING_MAP_SIZE));
@@ -446,16 +275,8 @@
     public void testCameraCharacteristicsAndroidRequestMaxNumOutputStreams() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.request.maxNumOutputStreams",
                     props.get(CameraCharacteristics.REQUEST_MAX_NUM_OUTPUT_STREAMS));
@@ -465,16 +286,8 @@
     public void testCameraCharacteristicsAndroidScalerAvailableFormats() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.scaler.availableFormats",
                     props.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS));
@@ -484,16 +297,8 @@
     public void testCameraCharacteristicsAndroidScalerAvailableJpegMinDurations() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.scaler.availableJpegMinDurations",
                     props.get(CameraCharacteristics.SCALER_AVAILABLE_JPEG_MIN_DURATIONS));
@@ -503,16 +308,8 @@
     public void testCameraCharacteristicsAndroidScalerAvailableJpegSizes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.scaler.availableJpegSizes",
                     props.get(CameraCharacteristics.SCALER_AVAILABLE_JPEG_SIZES));
@@ -522,16 +319,8 @@
     public void testCameraCharacteristicsAndroidScalerAvailableMaxDigitalZoom() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.scaler.availableMaxDigitalZoom",
                     props.get(CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM));
@@ -541,16 +330,8 @@
     public void testCameraCharacteristicsAndroidScalerAvailableProcessedMinDurations() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.scaler.availableProcessedMinDurations",
                     props.get(CameraCharacteristics.SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS));
@@ -560,16 +341,8 @@
     public void testCameraCharacteristicsAndroidScalerAvailableProcessedSizes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.scaler.availableProcessedSizes",
                     props.get(CameraCharacteristics.SCALER_AVAILABLE_PROCESSED_SIZES));
@@ -579,16 +352,8 @@
     public void testCameraCharacteristicsAndroidSensorBaseGainFactor() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.baseGainFactor",
                     props.get(CameraCharacteristics.SENSOR_BASE_GAIN_FACTOR));
@@ -598,16 +363,8 @@
     public void testCameraCharacteristicsAndroidSensorMaxAnalogSensitivity() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.maxAnalogSensitivity",
                     props.get(CameraCharacteristics.SENSOR_MAX_ANALOG_SENSITIVITY));
@@ -617,16 +374,8 @@
     public void testCameraCharacteristicsAndroidSensorOrientation() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.orientation",
                     props.get(CameraCharacteristics.SENSOR_ORIENTATION));
@@ -636,16 +385,8 @@
     public void testCameraCharacteristicsAndroidSensorInfoActiveArraySize() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.info.activeArraySize",
                     props.get(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE));
@@ -655,16 +396,8 @@
     public void testCameraCharacteristicsAndroidSensorInfoSensitivityRange() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.info.sensitivityRange",
                     props.get(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE));
@@ -674,16 +407,8 @@
     public void testCameraCharacteristicsAndroidSensorInfoExposureTimeRange() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.info.exposureTimeRange",
                     props.get(CameraCharacteristics.SENSOR_INFO_EXPOSURE_TIME_RANGE));
@@ -693,16 +418,8 @@
     public void testCameraCharacteristicsAndroidSensorInfoMaxFrameDuration() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.info.maxFrameDuration",
                     props.get(CameraCharacteristics.SENSOR_INFO_MAX_FRAME_DURATION));
@@ -712,16 +429,8 @@
     public void testCameraCharacteristicsAndroidSensorInfoPhysicalSize() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.sensor.info.physicalSize",
                     props.get(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE));
@@ -731,16 +440,8 @@
     public void testCameraCharacteristicsAndroidStatisticsInfoAvailableFaceDetectModes() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.statistics.info.availableFaceDetectModes",
                     props.get(CameraCharacteristics.STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES));
@@ -750,16 +451,8 @@
     public void testCameraCharacteristicsAndroidStatisticsInfoMaxFaceCount() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.statistics.info.maxFaceCount",
                     props.get(CameraCharacteristics.STATISTICS_INFO_MAX_FACE_COUNT));
@@ -769,16 +462,8 @@
     public void testCameraCharacteristicsAndroidTonemapMaxCurvePoints() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.tonemap.maxCurvePoints",
                     props.get(CameraCharacteristics.TONEMAP_MAX_CURVE_POINTS));
@@ -788,16 +473,8 @@
     public void testCameraCharacteristicsAndroidInfoSupportedHardwareLevel() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
-            assertNotNull("Failed to open camera", camera);
-            CameraCharacteristics props;
-            try {
-                props = camera.getProperties();
-            }
-            finally {
-                camera.close();
-            }
-            assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
+            CameraCharacteristics props = mCameraManager.getCameraCharacteristics(ids[i]);
+            assertNotNull(String.format("Can't get camera characteristics from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: android.info.supportedHardwareLevel",
                     props.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL));
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java
index a110ae9..f3a4fa7 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java
@@ -265,11 +265,14 @@
         }
     }
 
-    public static Size[] getSupportedSizeForFormat(int format, CameraDevice camera)
-            throws Exception {
+    public static Size[] getSupportedSizeForFormat(int format, String cameraId,
+            CameraManager cameraManager) throws Exception {
         CameraMetadata.Key<Size[]> key = null;
-        CameraCharacteristics properties = camera.getProperties();
-        assertNotNull("Can't get camera properties!", properties);
+        CameraCharacteristics properties = cameraManager.getCameraCharacteristics(cameraId);
+        assertNotNull("Can't get camera characteristics!", properties);
+        if (VERBOSE) {
+            Log.v(TAG, "get camera characteristics for camera: " + cameraId);
+        }
         switch (format) {
             case ImageFormat.JPEG:
                 key = CameraCharacteristics.SCALER_AVAILABLE_JPEG_SIZES;
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/ImageReaderTest.java b/tests/tests/hardware/src/android/hardware/camera2/cts/ImageReaderTest.java
index 112ca77..1dccb7b 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/ImageReaderTest.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/ImageReaderTest.java
@@ -129,7 +129,7 @@
     }
 
     private void bufferFormatTestByCamera(int format, String cameraId) throws Exception {
-        CameraCharacteristics properties = mCamera.getProperties();
+        CameraCharacteristics properties = mCameraManager.getCameraCharacteristics(cameraId);
         assertNotNull("Can't get camera properties!", properties);
 
         /**
@@ -150,7 +150,7 @@
                 Arrays.binarySearch(availableFormats, format) >= 0);
         */
 
-        Size[] availableSizes = getSupportedSizeForFormat(format, mCamera);
+        Size[] availableSizes = getSupportedSizeForFormat(format, mCamera.getId(), mCameraManager);
         assertArrayNotEmpty(availableSizes, "availableSizes should not be empty");
 
         // for each resolution, test imageReader: