diff options
author | ztenghui <ztenghui@google.com> | 2013-09-09 14:58:44 -0700 |
---|---|---|
committer | ztenghui <ztenghui@google.com> | 2013-09-11 17:12:24 -0700 |
commit | 7b265a6b2f55c6ae7afc30e63ba324c4084a5d8e (patch) | |
tree | 8c70ed32155287e4f023af0df1af439688188eed /src/com/android/camera/VideoModule.java | |
parent | 20703f72e087a01e6a589c2875819cf817581a51 (diff) | |
download | android_packages_apps_Snap-7b265a6b2f55c6ae7afc30e63ba324c4084a5d8e.tar.gz android_packages_apps_Snap-7b265a6b2f55c6ae7afc30e63ba324c4084a5d8e.tar.bz2 android_packages_apps_Snap-7b265a6b2f55c6ae7afc30e63ba324c4084a5d8e.zip |
Fix the flash mode transition in video mode
onSwitchMode is wrongly overloaded, now is fixed.
Basically, onCurrentDataChanged will handle the switching in and out of Camera.
onDataFullScreenChange will handle full screen change on non-preview data.
bug:10610967
Change-Id: I199a20d40d66b78302e90e0f96826d03076b0e39
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r-- | src/com/android/camera/VideoModule.java | 74 |
1 files changed, 39 insertions, 35 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 2173c9fb2..56882e1cf 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -463,17 +463,20 @@ public class VideoModule implements CameraModule, } } + @Override @OnClickAttr public void onReviewPlayClicked(View v) { startPlayVideoActivity(); } + @Override @OnClickAttr public void onReviewDoneClicked(View v) { mIsInReviewMode = false; doReturnToCaller(true); } + @Override @OnClickAttr public void onReviewCancelClicked(View v) { mIsInReviewMode = false; @@ -1490,25 +1493,7 @@ public class VideoModule implements CameraModule, mParameters.setPreviewFrameRate(mProfile.videoFrameRate); } - // Set flash mode. - String flashMode; - if (mUI.isVisible()) { - flashMode = mPreferences.getString( - CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE, - mActivity.getString(R.string.pref_camera_video_flashmode_default)); - } else { - flashMode = Parameters.FLASH_MODE_OFF; - } - List<String> supportedFlash = mParameters.getSupportedFlashModes(); - if (isSupported(flashMode, supportedFlash)) { - mParameters.setFlashMode(flashMode); - } else { - flashMode = mParameters.getFlashMode(); - if (flashMode == null) { - flashMode = mActivity.getString( - R.string.pref_camera_flashmode_no_flash); - } - } + forceFlashOffIfSupported(!mUI.isVisible()); // Set white balance parameter. String whiteBalance = mPreferences.getString( @@ -1711,27 +1696,46 @@ public class VideoModule implements CameraModule, } } - @Override - public void updateCameraAppView() { - if (!mPreviewing || mParameters.getFlashMode() == null) return; - - // When going to and back from gallery, we need to turn off/on the flash. - if (!mUI.isVisible()) { - if (mParameters.getFlashMode().equals(Parameters.FLASH_MODE_OFF)) { - mRestoreFlash = false; - return; + private void forceFlashOffIfSupported(boolean forceOff) { + String flashMode; + if (!forceOff) { + flashMode = mPreferences.getString( + CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE, + mActivity.getString(R.string.pref_camera_video_flashmode_default)); + } else { + flashMode = Parameters.FLASH_MODE_OFF; + } + List<String> supportedFlash = mParameters.getSupportedFlashModes(); + if (isSupported(flashMode, supportedFlash)) { + mParameters.setFlashMode(flashMode); + } else { + flashMode = mParameters.getFlashMode(); + if (flashMode == null) { + flashMode = mActivity.getString( + R.string.pref_camera_flashmode_no_flash); } - mRestoreFlash = true; - setCameraParameters(); - } else if (mRestoreFlash) { - mRestoreFlash = false; - setCameraParameters(); } } + /** + * Used to update the flash mode. Video mode can turn on the flash as torch + * mode, which we would like to turn on and off when we switching in and + * out to the preview. + * + * @param forceOff whether we want to force the flash off. + */ + private void forceFlashOff(boolean forceOff) { + if (!mPreviewing || mParameters.getFlashMode() == null) { + return; + } + forceFlashOffIfSupported(forceOff); + mCameraDevice.setParameters(mParameters); + } + @Override - public void onSwitchMode(boolean toCamera) { - mUI.onSwitchMode(toCamera); + public void onPreviewFocusChanged(boolean previewFocused) { + mUI.onPreviewFocusChanged(previewFocused); + forceFlashOff(!previewFocused); } private final class JpegPictureCallback implements CameraPictureCallback { |