From f6a57b1f666743544cffaf468d7ebee319a3db34 Mon Sep 17 00:00:00 2001 From: codeworkx Date: Sat, 9 Jan 2016 11:52:01 +0100 Subject: Snap: special handling of hdr-mode parameter for lge devices Change-Id: Iefee1f15f5649c2f93c59fcbdedcf953e9e0bc54 --- src/com/android/camera/CameraSettings.java | 3 ++ src/com/android/camera/PhotoModule.java | 56 +++++++++++++++++++++--------- 2 files changed, 42 insertions(+), 17 deletions(-) (limited to 'src') 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)); -- cgit v1.2.3