summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorzhuw <zhuw@codeaurora.org>2017-12-26 17:58:35 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-12-28 02:29:14 -0800
commit829b0c9d9060fec9f7565b68f40e6c874b464d7f (patch)
tree273d6f370514c4ee89e919c4b3ad31ee027996db /src
parent354b0e6d4ac3cde84af0a61fc5e9315d7d43086d (diff)
downloadandroid_packages_apps_Snap-829b0c9d9060fec9f7565b68f40e6c874b464d7f.tar.gz
android_packages_apps_Snap-829b0c9d9060fec9f7565b68f40e6c874b464d7f.tar.bz2
android_packages_apps_Snap-829b0c9d9060fec9f7565b68f40e6c874b464d7f.zip
SnapdragonCamera: Set flash mode just after UI change
if click flash mode icon, set flash mode directly Change-Id: I702ccbbbdb875e4b3326a04405733408fe70555d CRs-Fixed: 2152338
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/android/camera/CaptureModule.java38
-rw-r--r--src/com/android/camera/ui/FlashToggleButton.java3
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 {