summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCamera Software Integration <camswint@localhost>2015-11-24 16:09:42 -0800
committerMichael Bestas <mikeioannina@cyanogenmod.org>2016-01-24 20:14:35 +0200
commit273eec3a60e2f530f464673ab15cf27b31ea7263 (patch)
treeb958a9a8205225c9c5d41c443643d8833f033edb /src
parentbccf53aa2ced9afbfd4c066091ecd7ab2e5325e1 (diff)
downloadandroid_packages_apps_Snap-273eec3a60e2f530f464673ab15cf27b31ea7263.tar.gz
android_packages_apps_Snap-273eec3a60e2f530f464673ab15cf27b31ea7263.tar.bz2
android_packages_apps_Snap-273eec3a60e2f530f464673ab15cf27b31ea7263.zip
Snap: Restore flash mode setting
After user changes the scene mode back to "AUTO", making sure the flash mode is restored back to the correct value. Previously, the flash mode is forced to "OFF" if the scene mode is changed from others to "AUTO". Change-Id: I648ecc6945abb108c7bafa00c8e3e6d0cdd8f086 CRs-fixed: 927985 Signed-off-by: Zdrowy Gosciu <ZdrowyGosciu+GITHUB@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/PhotoModule.java41
1 files changed, 33 insertions, 8 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index db12222c3..08d5a0a77 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -326,6 +326,7 @@ public class PhotoModule
private FocusOverlayManager mFocusManager;
private String mSceneMode;
+ private String mSavedFlashMode = null;
private final Handler mHandler = new MainHandler();
private MessageQueue.IdleHandler mIdleHandler = null;
@@ -1773,7 +1774,7 @@ public class PhotoModule
pref_camera_coloreffect_default);
exposureCompensation = CameraSettings.EXPOSURE_DEFAULT_VALUE;
- overrideCameraSettings(flashMode, null, focusMode,
+ overrideCameraSettings(null, null, focusMode,
exposureCompensation, null,
null, null, null, colorEffect,
sceneMode, redeyeReduction, aeBracketing);
@@ -1803,7 +1804,7 @@ public class PhotoModule
exposureCompensation =
Integer.toString(mParameters.getExposureCompensation());
- overrideCameraSettings(flashMode, whiteBalance, focusMode,
+ overrideCameraSettings(null, whiteBalance, focusMode,
exposureCompensation,
mParameters.getAutoExposure(),
getSaturationSafe(),
@@ -1813,7 +1814,7 @@ public class PhotoModule
sceneMode, redeyeReduction, aeBracketing);
} else if (mFocusManager.isZslEnabled()) {
focusMode = mParameters.getFocusMode();
- overrideCameraSettings(flashMode, null, focusMode,
+ overrideCameraSettings(null, null, focusMode,
exposureCompensation, null,
null, null, null, colorEffect,
sceneMode, redeyeReduction, aeBracketing);
@@ -1821,7 +1822,7 @@ public class PhotoModule
if (mManual3AEnabled > 0) {
updateCommonManual3ASettings();
} else {
- overrideCameraSettings(flashMode, null, focusMode,
+ overrideCameraSettings(null, null, focusMode,
exposureCompensation, null,
null, null, null, colorEffect,
sceneMode, redeyeReduction, aeBracketing);
@@ -1830,9 +1831,8 @@ public class PhotoModule
/* Disable focus if aebracket is ON */
String aeBracket = mParameters.get(CameraSettings.KEY_QC_AE_BRACKETING);
if (aeBracket != null && !aeBracket.equalsIgnoreCase("off")) {
- String fMode = Parameters.FLASH_MODE_OFF;
- mUI.overrideSettings(CameraSettings.KEY_FLASH_MODE, fMode);
- mParameters.setFlashMode(fMode);
+ flashMode = Parameters.FLASH_MODE_OFF;
+ mParameters.setFlashMode(flashMode);
}
if (disableLongShot) {
mUI.overrideSettings(CameraSettings.KEY_LONGSHOT,
@@ -1840,6 +1840,25 @@ public class PhotoModule
} else {
mUI.overrideSettings(CameraSettings.KEY_LONGSHOT, null);
}
+
+ if (flashMode == null) {
+ // Restore saved flash mode or default mode
+ if (mSavedFlashMode == null) {
+ mSavedFlashMode = mPreferences.getString(
+ CameraSettings.KEY_FLASH_MODE,
+ mActivity.getString(R.string.pref_camera_flashmode_default));
+ }
+ mUI.setPreference(CameraSettings.KEY_FLASH_MODE, mSavedFlashMode);
+ mSavedFlashMode = null;
+ } else {
+ // Save the current flash mode
+ if (mSavedFlashMode == null) {
+ mSavedFlashMode = mPreferences.getString(
+ CameraSettings.KEY_FLASH_MODE,
+ mActivity.getString(R.string.pref_camera_flashmode_default));
+ }
+ mUI.overrideSettings(CameraSettings.KEY_FLASH_MODE, flashMode);
+ }
}
private void overrideCameraSettings(final String flashMode,
@@ -3497,9 +3516,15 @@ public class PhotoModule
if (Parameters.SCENE_MODE_AUTO.equals(mSceneMode)) {
// Set flash mode.
- String flashMode = mPreferences.getString(
+ String flashMode;
+ if (mSavedFlashMode == null) {
+ flashMode = mPreferences.getString(
CameraSettings.KEY_FLASH_MODE,
mActivity.getString(R.string.pref_camera_flashmode_default));
+ } else {
+ flashMode = mSavedFlashMode;
+ }
+
List<String> supportedFlash = mParameters.getSupportedFlashModes();
if (CameraUtil.isSupported(flashMode, supportedFlash)) {
mParameters.setFlashMode(flashMode);