summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/com/android/camera/CameraSettings.java4
-rwxr-xr-xsrc/com/android/camera/PhotoModule.java18
-rwxr-xr-xsrc/com/android/camera/util/CameraUtil.java14
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: