Fix for #testCancelAutofocus
Need to try to set auto focus mode in case CameraHal
implementation uses one of the CAF modes as a default.
This test only makes sense for FOCUS_MODE_AUTO and
FOCUS_MODE_MACRO where the lens actually moves so return
if neither of these modes are supported.
bug:5332932
Change-Id: I1da1e9d5498e8d4ebd37fb5b181c115ea31be8e6
Signed-off-by: Tyler Luu <tluu@ti.com>
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java b/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
index 9edbb47..f190853 100644
--- a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
@@ -16,12 +16,6 @@
package android.hardware.cts;
-import dalvik.annotation.TestLevel;
-import dalvik.annotation.TestTargetClass;
-import dalvik.annotation.TestTargetNew;
-import dalvik.annotation.TestTargets;
-
-import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.ImageFormat;
import android.graphics.Rect;
@@ -46,6 +40,11 @@
import android.util.Log;
import android.view.SurfaceHolder;
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -1461,6 +1460,20 @@
private void testCancelAutofocusByCamera(int cameraId) throws Exception {
initializeMessageLooper(cameraId);
+ Parameters parameters = mCamera.getParameters();
+ List<String> focusModes = parameters.getSupportedFocusModes();
+
+ if (focusModes.contains(Parameters.FOCUS_MODE_AUTO)) {
+ parameters.setFocusMode(Parameters.FOCUS_MODE_AUTO);
+ } else if (focusModes.contains(Parameters.FOCUS_MODE_MACRO)) {
+ parameters.setFocusMode(Parameters.FOCUS_MODE_MACRO);
+ } else {
+ terminateMessageLooper();
+ return;
+ }
+
+ mCamera.setParameters(parameters);
+
mCamera.startPreview();
// No op if autofocus is not in progress.