diff options
author | Wu-cheng Li <wuchengli@google.com> | 2011-10-20 15:20:59 +0800 |
---|---|---|
committer | Wu-cheng Li <wuchengli@google.com> | 2011-10-20 15:36:01 +0800 |
commit | 53be34deae057cfa297c3ee73eee91f880272650 (patch) | |
tree | 46dc4b8086a136cc5d0bb5e06fd7dc4b1fde3038 /src/com/android/camera/Camera.java | |
parent | e0b66a87432f452bf4a10ef5e0d835113a8ab69d (diff) | |
download | packages_apps_LegacyCamera-53be34deae057cfa297c3ee73eee91f880272650.zip packages_apps_LegacyCamera-53be34deae057cfa297c3ee73eee91f880272650.tar.gz packages_apps_LegacyCamera-53be34deae057cfa297c3ee73eee91f880272650.tar.bz2 |
Fix AE and AWB lock were incorrectly unlocked during autofocus.
The only actual difference of this patch is not to unlock AE
and AWB when the state is STATE_FOCUSING_SNAP_ON_FINISH.
bug:5483130
Change-Id: If5108ef3c3677ebed96a291a505408ebfdc4668e
Diffstat (limited to 'src/com/android/camera/Camera.java')
-rw-r--r-- | src/com/android/camera/Camera.java | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index 589a5c8..17741bf 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -124,7 +124,6 @@ public class Camera extends ActivityBase implements FocusManager.Listener, private boolean mMeteringAreaSupported; private boolean mAeLockSupported; private boolean mAwbLockSupported; - private boolean mAeAwbLock; private MyOrientationEventListener mOrientationListener; // The degrees of the device rotated clockwise from its natural orientation. @@ -1358,18 +1357,10 @@ public class Camera extends ActivityBase implements FocusManager.Listener, // Do not do focus if there is not enough storage. if (pressed && !canTakePicture()) return; - // Lock AE and AWB so users can half-press shutter and recompose. - mAeAwbLock = pressed; - if (mAeAwbLock && (mAeLockSupported || mAwbLockSupported)) { - setCameraParameters(UPDATE_PARAM_PREFERENCE); - } - - mFocusManager.doFocus(pressed); - - // Unlock AE and AWB after cancelAutoFocus. Camera API does not - // guarantee setParameters can be called during autofocus. - if (!mAeAwbLock && (mAeLockSupported || mAwbLockSupported)) { - setCameraParameters(UPDATE_PARAM_PREFERENCE); + if (pressed) { + mFocusManager.onShutterDown(); + } else { + mFocusManager.onShutterUp(); } } @@ -1756,7 +1747,8 @@ public class Camera extends ActivityBase implements FocusManager.Listener, setPreviewDisplay(mSurfaceHolder); setDisplayOrientation(); - mAeAwbLock = false; // Unlock AE and AWB. + + mFocusManager.setAeAwbLock(false); // Unlock AE and AWB. setCameraParameters(UPDATE_PARAM_ALL); // If the focus mode is continuous autofocus, call cancelAutoFocus to // resume it because it may have been paused by autoFocus call. @@ -1831,11 +1823,11 @@ public class Camera extends ActivityBase implements FocusManager.Listener, private void updateCameraParametersPreference() { if (mAeLockSupported) { - mParameters.setAutoExposureLock(mAeAwbLock); + mParameters.setAutoExposureLock(mFocusManager.getAeAwbLock()); } if (mAwbLockSupported) { - mParameters.setAutoWhiteBalanceLock(mAeAwbLock); + mParameters.setAutoWhiteBalanceLock(mFocusManager.getAeAwbLock()); } if (mFocusAreaSupported) { |