diff options
author | Camera Software Integration <camswint@localhost> | 2015-11-24 16:09:42 -0800 |
---|---|---|
committer | Michael Bestas <mikeioannina@cyanogenmod.org> | 2016-01-24 20:14:35 +0200 |
commit | 273eec3a60e2f530f464673ab15cf27b31ea7263 (patch) | |
tree | b958a9a8205225c9c5d41c443643d8833f033edb /src | |
parent | bccf53aa2ced9afbfd4c066091ecd7ab2e5325e1 (diff) | |
download | android_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.java | 41 |
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); |