From ae8ef453111d0050efda875959ce8090bb19925b Mon Sep 17 00:00:00 2001 From: codeworkx Date: Wed, 6 Jan 2016 12:25:10 +0100 Subject: Snap: add support for mw_continuous-picture focus mode Change-Id: If165370b52d7454c69e2cdeb9d837d049010b0e8 --- src/com/android/camera/PhotoModule.java | 38 ++++++++++++++++++++--------- src/com/android/camera/util/CameraUtil.java | 1 + 2 files changed, 27 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 19e1d87e4..86794b946 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1478,15 +1478,15 @@ public class PhotoModule if (needRestartPreview) { setupPreview(); - if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals( - mFocusManager.getFocusMode())) { + if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode()) || + CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())) { mCameraDevice.cancelAutoFocus(); } } else if ((mReceivedSnapNum == mBurstSnapNum) && (mCameraState != LONGSHOT)){ mFocusManager.resetTouchFocus(); - if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals( - mFocusManager.getFocusMode())) { + if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode()) || + CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())) { mCameraDevice.cancelAutoFocus(); } mUI.resumeFaceDetection(); @@ -3175,7 +3175,8 @@ public class PhotoModule if (!mSnapshotOnIdle && !mInstantCaptureSnapShot) { // If the focus mode is continuous autofocus, call cancelAutoFocus to // resume it because it may have been paused by autoFocus call. - if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode()) && mCameraState !=INIT) { + if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode()) && mCameraState !=INIT || + CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())) { mCameraDevice.cancelAutoFocus(); } } else { @@ -3812,10 +3813,17 @@ public class PhotoModule mParameters.set(KEY_PICTURE_FORMAT, PIXEL_FORMAT_JPEG); //Try to set CAF for ZSL - if(CameraUtil.isSupported(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE, - mParameters.getSupportedFocusModes()) && !mFocusManager.isTouch()) { - mFocusManager.overrideFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); - mParameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); + if (!mFocusManager.isTouch()) { + if(CameraUtil.isSupported(CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE, + mParameters.getSupportedFocusModes())) { + mFocusManager.overrideFocusMode(CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE); + mParameters.setFocusMode(CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE); + } + else if(CameraUtil.isSupported(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE, + mParameters.getSupportedFocusModes())) { + mFocusManager.overrideFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); + mParameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); + } } else if (mFocusManager.isTouch()) { mFocusManager.overrideFocusMode(null); mParameters.setFocusMode(mFocusManager.getFocusMode()); @@ -4375,7 +4383,8 @@ public class PhotoModule @TargetApi(Build.VERSION_CODES.JELLY_BEAN) private void updateAutoFocusMoveCallback() { - if (mParameters.getFocusMode().equals(CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE)) { + if (mParameters.getFocusMode().equals(CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE) || + mParameters.getFocusMode().equals(CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE)) { mCameraDevice.setAutoFocusMoveCallback(mHandler, (CameraAFMoveCallback) mAutoFocusMoveCallback); } else { @@ -5114,8 +5123,13 @@ public class PhotoModule mMeteringAreaSupported = CameraUtil.isMeteringAreaSupported(mInitialParams); mAeLockSupported = CameraUtil.isAutoExposureLockSupported(mInitialParams); mAwbLockSupported = CameraUtil.isAutoWhiteBalanceLockSupported(mInitialParams); - mContinuousFocusSupported = mInitialParams.getSupportedFocusModes().contains( - CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE); + + if (mInitialParams.getSupportedFocusModes().contains(CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE) || + mInitialParams.getSupportedFocusModes().contains(CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE)) { + mContinuousFocusSupported = true; + } else { + mContinuousFocusSupported = false; + } } @Override diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 3d34a8020..f9cab0165 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -133,6 +133,7 @@ public class CameraUtil { public static final String SECURE_CAMERA_EXTRA = "secure_camera"; // Fields from android.hardware.Camera.Parameters public static final String FOCUS_MODE_CONTINUOUS_PICTURE = "continuous-picture"; + public static final String FOCUS_MODE_MW_CONTINUOUS_PICTURE = "mw_continuous-picture"; public static final String RECORDING_HINT = "recording-hint"; private static final String AUTO_EXPOSURE_LOCK_SUPPORTED = "auto-exposure-lock-supported"; private static final String AUTO_WHITE_BALANCE_LOCK_SUPPORTED = "auto-whitebalance-lock-supported"; -- cgit v1.2.3