diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 38 | ||||
-rw-r--r-- | src/com/android/camera/ui/FlashToggleButton.java | 3 |
2 files changed, 40 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 372f9e2ff..7aeed1a1f 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -4613,6 +4613,42 @@ public class CaptureModule implements CameraModule, PhotoController, } } + private void applyFlashForUIChange(CaptureRequest.Builder request, int id) { + if (!checkSessionAndBuilder(mCaptureSession[id], request)) { + return; + } + String redeye = mSettingsManager.getValue(SettingsManager.KEY_REDEYE_REDUCTION); + if (redeye != null && redeye.equals("on") && !mLongshotActive) { + Log.w(TAG, "redeye mode is on, can't set android.flash.mode"); + return; + } + if (!mSettingsManager.isFlashSupported(id)) { + Log.w(TAG, "flash not supported, can't set android.flash.mode"); + return; + } + String value = mSettingsManager.getValue(SettingsManager.KEY_FLASH_MODE); + switch (value) { + case "on": + request.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_ALWAYS_FLASH); + request.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE); + break; + case "auto": + request.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH); + request.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE); + break; + case "off": + request.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON); + request.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF); + break; + } + try { + mCaptureSession[id].setRepeatingRequest(request + .build(), mCaptureCallback, mCameraHandler); + } catch (CameraAccessException e) { + Log.e(TAG, "Camera Access Exception in applyFlashForUIChange, apply failed"); + } + } + private void applyFaceDetection(CaptureRequest.Builder request) { String value = mSettingsManager.getValue(SettingsManager.KEY_FACE_DETECTION); if (value != null && value.equals("on")) { @@ -4825,6 +4861,8 @@ public class CaptureModule implements CameraModule, PhotoController, updateVideoFlash(); return; case SettingsManager.KEY_FLASH_MODE: + applyFlashForUIChange(mPreviewRequestBuilder[getMainCameraId()], + getMainCameraId()); // When enable APP-ZSL, run restartSession if (SettingsManager.getInstance().isZSLInAppEnabled()) { if (count == 0) restartSession(false); diff --git a/src/com/android/camera/ui/FlashToggleButton.java b/src/com/android/camera/ui/FlashToggleButton.java index 2dd37cbbc..a75a11732 100644 --- a/src/com/android/camera/ui/FlashToggleButton.java +++ b/src/com/android/camera/ui/FlashToggleButton.java @@ -64,7 +64,8 @@ public class FlashToggleButton extends RotateImageView { } mSettingsManager = SettingsManager.getInstance(); mIndex = mSettingsManager.getValueIndex(key); - if (mIndex == -1) { + String redeye = mSettingsManager.getValue(SettingsManager.KEY_REDEYE_REDUCTION); + if (mIndex == -1 || (redeye != null && redeye.equals("on"))) { setVisibility(GONE); return; } else { |