summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/config.xml3
-rw-r--r--src/com/android/camera/CameraSettings.java3
-rwxr-xr-xsrc/com/android/camera/PhotoModule.java54
3 files changed, 44 insertions, 16 deletions
diff --git a/res/values/config.xml b/res/values/config.xml
index a703bffaf..fb8e18969 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -55,4 +55,7 @@
<!-- ISO values use numbers.
Example: 50 instead of ISO50 -->
<bool name="iso_values_use_numbers">false</bool>
+
+ <!-- Enable support for LGE HDR -->
+ <bool name="lge_hdr_mode">false</bool>
</resources>
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 91567eb86..0d5908a8e 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -182,6 +182,9 @@ public class CameraSettings {
public static final String LUMINANCE_CONITION_LOW = "low";
public static final String LUMINANCE_CONITION_HIGH = "high";
+ public static final String LGE_HDR_MODE_OFF = "0";
+ public static final String LGE_HDR_MODE_ON = "1";
+
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 250e66d6a..5b13b5e31 100755
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -128,6 +128,7 @@ public class PhotoModule
private int mBurstSnapNum = 1;
private int mReceivedSnapNum = 0;
public boolean mFaceDetectionEnabled = false;
+ private boolean mLgeHdrMode = false;
private DrawAutoHDR mDrawAutoHDR;
/*Histogram variables*/
private GraphView mGraphView;
@@ -253,7 +254,7 @@ public class PhotoModule
private byte[] mLastJpegData;
private int mLastJpegOrientation = 0;
- private static Context mApplicationContext;
+ private static Context mApplicationContext = null;
private Runnable mDoSnapRunnable = new Runnable() {
@Override
@@ -565,7 +566,6 @@ public class PhotoModule
CameraSettings.upgradeGlobalPreferences(mPreferences.getGlobal(), activity);
mCameraId = getPreferredCameraId(mPreferences);
-
mContentResolver = mActivity.getContentResolver();
mApplicationContext = CameraApp.getContext();
@@ -595,6 +595,11 @@ public class PhotoModule
Storage.setSaveSDCard(
mPreferences.getString(CameraSettings.KEY_CAMERA_SAVEPATH, "0").equals("1"));
+
+ // LGE HDR mode
+ if (mApplicationContext != null) {
+ mLgeHdrMode = mApplicationContext.getResources().getBoolean(R.bool.lge_hdr_mode);
+ }
}
private void initializeControlByIntent() {
@@ -1189,6 +1194,7 @@ public class PhotoModule
implements CameraPictureCallback {
@Override
public void onPictureTaken(byte [] data, CameraProxy camera) {
+ Log.d(TAG, "PostViewPictureCallback: onPictureTaken()");
mPostViewPictureCallbackTime = System.currentTimeMillis();
Log.v(TAG, "mShutterToPostViewCallbackTime = "
+ (mPostViewPictureCallbackTime - mShutterCallbackTime)
@@ -1200,6 +1206,7 @@ public class PhotoModule
implements CameraPictureCallback {
@Override
public void onPictureTaken(byte [] rawData, CameraProxy camera) {
+ Log.d(TAG, "RawPictureCallback: onPictureTaken()");
mRawPictureCallbackTime = System.currentTimeMillis();
Log.v(TAG, "mShutterToRawCallbackTime = "
+ (mRawPictureCallbackTime - mShutterCallbackTime) + "ms");
@@ -1215,6 +1222,7 @@ public class PhotoModule
@Override
public void onPictureTaken(final byte [] jpegData, CameraProxy camera) {
+ Log.d(TAG, "LongshotPictureCallback: onPictureTaken()");
if (mPaused) {
return;
}
@@ -1348,28 +1356,36 @@ public class PhotoModule
&& (mSnapshotMode != CameraInfo.CAMERA_SUPPORT_MODE_ZSL)
&& (mReceivedSnapNum == mBurstSnapNum);
- boolean backCameraRestartPreviewOnPictureTaken =
- mApplicationContext.getResources().getBoolean(R.bool.back_camera_restart_preview_onPictureTaken);
- boolean frontCameraRestartPreviewOnPictureTaken =
- mApplicationContext.getResources().getBoolean(R.bool.front_camera_restart_preview_onPictureTaken);
+ needRestartPreview |= mLgeHdrMode;
+
+ boolean backCameraRestartPreviewOnPictureTaken = false;
+ boolean frontCameraRestartPreviewOnPictureTaken = false;
+ if (mApplicationContext != null) {
+ backCameraRestartPreviewOnPictureTaken =
+ mApplicationContext.getResources().getBoolean(R.bool.back_camera_restart_preview_onPictureTaken);
+ frontCameraRestartPreviewOnPictureTaken =
+ mApplicationContext.getResources().getBoolean(R.bool.front_camera_restart_preview_onPictureTaken);
+ }
CameraInfo info = CameraHolder.instance().getCameraInfo()[mCameraId];
- if ((info.facing == CameraInfo.CAMERA_FACING_BACK && backCameraRestartPreviewOnPictureTaken)
- || (info.facing == CameraInfo.CAMERA_FACING_FRONT && frontCameraRestartPreviewOnPictureTaken)) {
+ if ((info.facing == CameraInfo.CAMERA_FACING_BACK
+ && backCameraRestartPreviewOnPictureTaken)
+ || (info.facing == CameraInfo.CAMERA_FACING_FRONT
+ && frontCameraRestartPreviewOnPictureTaken)) {
needRestartPreview = true;
}
if (needRestartPreview) {
setupPreview();
- if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode()) ||
- CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())) {
+ if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())
+ || CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())) {
mCameraDevice.cancelAutoFocus();
}
} else if ((mReceivedSnapNum == mBurstSnapNum)
&& (mCameraState != LONGSHOT)){
mFocusManager.resetTouchFocus();
- if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode()) ||
- CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())) {
+ if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())
+ || CameraUtil.FOCUS_MODE_MW_CONTINUOUS_PICTURE.equals(mFocusManager.getFocusMode())) {
mCameraDevice.cancelAutoFocus();
}
mUI.resumeFaceDetection();
@@ -1699,7 +1715,7 @@ public class PhotoModule
// LGE G4: Disable hdr if luminance is low and flash get's used
if (CameraUtil.isLowLuminance(mParameters)) {
- mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, "0");
+ mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, CameraSettings.LGE_HDR_MODE_OFF);
mCameraDevice.setParameters(mParameters);
mParameters = mCameraDevice.getParameters();
}
@@ -3359,9 +3375,9 @@ public class PhotoModule
String hdrMode = mPreferences.getString(
CameraSettings.KEY_HDR_MODE,
mActivity.getString(R.string.pref_camera_hdr_mode_default));
- Log.v(TAG, "HDR Mode value =" + hdrMode);
if (CameraUtil.isSupported(hdrMode,
CameraSettings.getSupportedHDRModes(mParameters))) {
+ Log.v(TAG, "HDR Mode value =" + hdrMode);
mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, hdrMode);
}
@@ -3369,9 +3385,9 @@ public class PhotoModule
String hdrNeed1x = mPreferences.getString(
CameraSettings.KEY_HDR_NEED_1X,
mActivity.getString(R.string.pref_camera_hdr_need_1x_default));
- Log.v(TAG, "HDR need 1x value =" + hdrNeed1x);
if (CameraUtil.isSupported(hdrNeed1x,
CameraSettings.getSupportedHDRNeed1x(mParameters))) {
+ Log.v(TAG, "HDR need 1x value =" + hdrNeed1x);
mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_NEED_1X, hdrNeed1x);
}
@@ -3896,8 +3912,8 @@ public class PhotoModule
mActivity.getString(R.string.pref_camera_hdr_plus_default));
boolean hdrOn = onValue.equals(hdr);
boolean hdrPlusOn = onValue.equals(hdrPlus);
-
boolean doGcamModeSwitch = false;
+
if (hdrPlusOn && GcamHelper.hasGcamCapture()) {
// Kick off mode switch to gcam.
doGcamModeSwitch = true;
@@ -3910,7 +3926,13 @@ public class PhotoModule
mCameraDevice.setParameters(mParameters);
mParameters = mCameraDevice.getParameters();
}
+ if (mLgeHdrMode) {
+ mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, CameraSettings.LGE_HDR_MODE_ON);
+ }
} else {
+ if (mLgeHdrMode) {
+ mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, CameraSettings.LGE_HDR_MODE_OFF);
+ }
mSceneMode = mPreferences.getString(
CameraSettings.KEY_SCENE_MODE,
mActivity.getString(R.string.pref_camera_scenemode_default));