summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.org>2016-01-09 11:52:01 +0100
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-01-11 10:52:43 -0800
commitf6a57b1f666743544cffaf468d7ebee319a3db34 (patch)
tree30d04b16a5a7e5f4003c7f9590a00e02a2c10f83
parent2d5e458a41f51b5fd8db45c0179d1b0afedcdac0 (diff)
downloadandroid_packages_apps_Snap-f6a57b1f666743544cffaf468d7ebee319a3db34.tar.gz
android_packages_apps_Snap-f6a57b1f666743544cffaf468d7ebee319a3db34.tar.bz2
android_packages_apps_Snap-f6a57b1f666743544cffaf468d7ebee319a3db34.zip
Snap: special handling of hdr-mode parameter for lge devices
Change-Id: Iefee1f15f5649c2f93c59fcbdedcf953e9e0bc54
-rw-r--r--res/values/config.xml3
-rw-r--r--src/com/android/camera/CameraSettings.java3
-rw-r--r--src/com/android/camera/PhotoModule.java56
3 files changed, 45 insertions, 17 deletions
diff --git a/res/values/config.xml b/res/values/config.xml
index 7462a554b..5676755c1 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -58,4 +58,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 53d34af81..3e8accb1e 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -169,6 +169,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 d4b5e9567..359d96773 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -122,6 +122,7 @@ public class PhotoModule
private int mReceivedSnapNum = 0;
private int mLongshotSnapNum = 0;
public boolean mFaceDetectionEnabled = false;
+ private boolean mLgeHdrMode = false;
private DrawAutoHDR mDrawAutoHDR;
/*Histogram variables*/
private GraphView mGraphView;
@@ -249,7 +250,7 @@ public class PhotoModule
private boolean mShutterPressing = false;
- private static Context mApplicationContext;
+ private static Context mApplicationContext = null;
private Runnable mDoSnapRunnable = new Runnable() {
@Override
@@ -491,7 +492,6 @@ public class PhotoModule
mPreferences = new ComboPreferences(mActivity);
CameraSettings.upgradeGlobalPreferences(mPreferences.getGlobal(), activity);
mCameraId = getPreferredCameraId(mPreferences);
-
mContentResolver = mActivity.getContentResolver();
mApplicationContext = CameraApp.getContext();
@@ -523,6 +523,11 @@ public class PhotoModule
mSoundPool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 0);
mRefocusSound = mSoundPool.load(mActivity, R.raw.camera_click_x5, 1);
+
+ // LGE HDR mode
+ if (mApplicationContext != null) {
+ mLgeHdrMode = mApplicationContext.getResources().getBoolean(R.bool.lge_hdr_mode);
+ }
}
private void initializeControlByIntent() {
@@ -1099,6 +1104,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)
@@ -1110,6 +1116,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");
@@ -1125,6 +1132,7 @@ public class PhotoModule
@Override
public void onPictureTaken(final byte [] jpegData, CameraProxy camera) {
+ Log.d(TAG, "LongshotPictureCallback: onPictureTaken()");
if (mPaused) {
return;
}
@@ -1184,6 +1192,7 @@ public class PhotoModule
@Override
public void onPictureTaken(final byte [] jpegData, CameraProxy camera) {
+ Log.d(TAG, "JpegPictureCallback: onPictureTaken()");
if (mCameraState != LONGSHOT) {
mUI.enableShutter(true);
}
@@ -1242,30 +1251,37 @@ public class PhotoModule
needRestartPreview |= ((mReceivedSnapNum == mBurstSnapNum) &&
!mFocusManager.isZslEnabled() &&
CameraUtil.SCENE_MODE_HDR.equals(mSceneMode));
-
- 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 (((mCameraState != LONGSHOT) && (mReceivedSnapNum == mBurstSnapNum))
|| isLongshotDone()){
mUI.enableShutter(true);
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();
@@ -1598,7 +1614,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();
}
@@ -3077,9 +3093,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);
}
@@ -3087,9 +3103,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);
}
@@ -3538,8 +3554,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;
@@ -3552,7 +3568,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));