diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-12-28 13:43:53 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-12-28 13:43:52 -0800 |
commit | 0f91d55492ac3947279fc5d7dba2ae0e9dee1203 (patch) | |
tree | 6692e558b154fd3a2455fd674a8bd15d93ab73f5 /src | |
parent | 1ce83d06e8935b32f73e409e8326f10b60563277 (diff) | |
parent | 02c4652b18ec0e3c4217fec6c15260ad8b743d24 (diff) | |
download | android_packages_apps_Snap-0f91d55492ac3947279fc5d7dba2ae0e9dee1203.tar.gz android_packages_apps_Snap-0f91d55492ac3947279fc5d7dba2ae0e9dee1203.tar.bz2 android_packages_apps_Snap-0f91d55492ac3947279fc5d7dba2ae0e9dee1203.zip |
Merge "SnapdragonCamera: Fix preFlash not work when TAF in lowlight"
Diffstat (limited to 'src')
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 40 | ||||
-rw-r--r-- | src/com/android/camera/ui/FlashToggleButton.java | 3 |
2 files changed, 42 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 8ddbb5957..de82cc680 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -1496,6 +1496,7 @@ public class CaptureModule implements CameraModule, PhotoController, mControlAFMode = CaptureRequest.CONTROL_AF_MODE_AUTO; applySettingsForAutoFocus(builder, id); mState[id] = STATE_WAITING_TOUCH_FOCUS; + applyFlashForUIChange(builder, id);//apply flash mode and AEmode for this temp builder mCaptureSession[id].capture(builder.build(), mCaptureCallback, mCameraHandler); setAFModeToPreview(id, mControlAFMode); Message message = mCameraHandler.obtainMessage(CANCEL_TOUCH_FOCUS, mCameraId[id]); @@ -4617,6 +4618,43 @@ public class CaptureModule implements CameraModule, PhotoController, } } + //response to switch flash mode options in UI, repeat request as soon as switching + 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")) { @@ -4840,6 +4878,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 { |