summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-12-28 13:43:53 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-12-28 13:43:52 -0800
commit0f91d55492ac3947279fc5d7dba2ae0e9dee1203 (patch)
tree6692e558b154fd3a2455fd674a8bd15d93ab73f5 /src
parent1ce83d06e8935b32f73e409e8326f10b60563277 (diff)
parent02c4652b18ec0e3c4217fec6c15260ad8b743d24 (diff)
downloadandroid_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-xsrc/com/android/camera/CaptureModule.java40
-rw-r--r--src/com/android/camera/ui/FlashToggleButton.java3
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 {