diff options
-rwxr-xr-x | src/com/android/camera/CameraSettings.java | 4 | ||||
-rwxr-xr-x | src/com/android/camera/PhotoModule.java | 18 | ||||
-rwxr-xr-x | src/com/android/camera/util/CameraUtil.java | 14 |
3 files changed, 36 insertions, 0 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index cf91b9a7d..d04a1aa7b 100755 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -183,6 +183,10 @@ public class CameraSettings { public static final String KEY_QC_INSTANT_CAPTURE = "instant-capture"; public static final String KEY_QC_INSTANT_CAPTURE_VALUES = "instant-capture-values"; + public static final String KEY_LUMINANCE_CONDITION = "luminance-condition"; + public static final String LUMINANCE_CONDITION_LOW = "low"; + public static final String LUMINANCE_CONDITION_HIGH = "high"; + public static final String KEY_INTERNAL_PREVIEW_RESTART = "internal-restart"; public static final String KEY_QC_ZSL_HDR_SUPPORTED = "zsl-hdr-supported"; public static final String KEY_QC_LONGSHOT_SUPPORTED = "longshot-supported"; diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 2d0422a2c..b82490927 100755 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1734,6 +1734,13 @@ public class PhotoModule mParameters = mCameraDevice.getParameters(); } + // LGE G4: Disable HDR if luminance is low and flash gets used + if (CameraUtil.isLowLuminance(mParameters)) { + mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, "0"); + mCameraDevice.setParameters(mParameters); + mParameters = mCameraDevice.getParameters(); + } + try { mBurstSnapNum = mParameters.getInt("num-snaps-per-shutter"); }catch (NumberFormatException ex){ @@ -1782,6 +1789,17 @@ public class PhotoModule mRawPictureCallback, mPostViewPictureCallback, new JpegPictureCallback(loc)); setCameraState(SNAPSHOT_IN_PROGRESS); + + // LGE G4: Preview needs to be restarted when flash gets used + if (CameraUtil.isSupported(mParameters, CameraSettings.KEY_LUMINANCE_CONDITION)) { + String flashMode = mPreferences.getString(CameraSettings.KEY_FLASH_MODE, + mActivity.getString(R.string.pref_camera_flashmode_default)); + if (flashMode.equals(Parameters.FLASH_MODE_ON) || + (!flashMode.equals(Parameters.FLASH_MODE_OFF) && + CameraUtil.isLowLuminance(mParameters))) { + setupPreview(); + } + } } mNamedImages.nameNewImage(mCaptureStartTime, mRefocus); diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 3b34519a5..32db13306 100755 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -1108,6 +1108,20 @@ public class CameraUtil { } } } + + public static boolean isLowLuminance(Parameters parameters) { + String lC = parameters.get(CameraSettings.KEY_LUMINANCE_CONDITION); + + if (lC != null) { + if (lC.equals(CameraSettings.LUMINANCE_CONDITION_LOW)) { + Log.d(TAG, "Parameter " + CameraSettings.KEY_LUMINANCE_CONDITION + + "=" + CameraSettings.LUMINANCE_CONDITION_LOW); + return true; + } + } + return false; + } + public static String getFilpModeString(int value){ switch(value){ case 0: |