diff options
author | codeworkx <codeworkx@cyanogenmod.org> | 2016-01-09 11:52:01 +0100 |
---|---|---|
committer | Chippa-a <vusal1372@gmail.com> | 2019-10-25 15:55:25 +0300 |
commit | df2f8692e61c25eb6a5c961049cc1e46e6d5c06d (patch) | |
tree | dd30fdf723a0139c3e415baec5ba3106744df542 | |
parent | b3b317ddc52253815d5392f2159c90dc89e4d693 (diff) | |
download | android_packages_apps_Snap-df2f8692e61c25eb6a5c961049cc1e46e6d5c06d.tar.gz android_packages_apps_Snap-df2f8692e61c25eb6a5c961049cc1e46e6d5c06d.tar.bz2 android_packages_apps_Snap-df2f8692e61c25eb6a5c961049cc1e46e6d5c06d.zip |
Snap: Add special handling of hdr-mode parameter for LGE devices
Author: codeworkx <codeworkx@cyanogenmod.org>
Date: Sat Jan 9 11:52:01 2016 +0100
Snap: special handling of hdr-mode parameter for lge devices
Change-Id: Iefee1f15f5649c2f93c59fcbdedcf953e9e0bc54
Author: codeworkx <codeworkx@cyanogenmod.org>
Date: Mon May 9 21:28:40 2016 +0200
Snap: force enable zsl for lge hdr
LGE HDR needs ZSL enabled
Change-Id: I563b7f7cd49fcf8aad35ca4b93f839dc0a591f01
Change-Id: I139a4492ae85b87ca1cc84013f252b510200fffc
-rw-r--r-- | res/values/config.xml | 3 | ||||
-rwxr-xr-x | src/com/android/camera/CameraSettings.java | 3 | ||||
-rwxr-xr-x | src/com/android/camera/PhotoModule.java | 54 |
3 files changed, 48 insertions, 12 deletions
diff --git a/res/values/config.xml b/res/values/config.xml index 0b84c97d6..d55cc776f 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -56,4 +56,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 0514ea916..2f60d5813 100755 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -191,6 +191,9 @@ public class CameraSettings { public static final String LUMINANCE_CONDITION_LOW = "low"; public static final String LUMINANCE_CONDITION_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 23f83819a..88380d5fc 100755 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -135,6 +135,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; @@ -257,7 +258,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 @@ -604,6 +605,11 @@ public class PhotoModule mBlurDegreeProgressBar.setMax(100); 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() { @@ -1203,6 +1209,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) @@ -1214,6 +1221,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"); @@ -1229,6 +1237,7 @@ public class PhotoModule @Override public void onPictureTaken(final byte [] jpegData, CameraProxy camera) { + Log.d(TAG, "LongshotPictureCallback: onPictureTaken()"); if (mPaused) { return; } @@ -1357,7 +1366,7 @@ public class PhotoModule mBurstSnapNum = 1; } } - Log.v(TAG, "JpegPictureCallback: Received = " + mReceivedSnapNum + + Log.v(TAG, "JpegPictureCallback: Received = " + mReceivedSnapNum + " " + "Burst count = " + mBurstSnapNum); // If postview callback has arrived, the captured image is displayed // in postview callback. If not, the captured image is displayed in @@ -1384,17 +1393,24 @@ public class PhotoModule && (mSnapshotMode != CameraInfoWrapper.CAMERA_SUPPORT_MODE_ZSL) && (mReceivedSnapNum == mBurstSnapNum); + needRestartPreview |= mLgeHdrMode && (mCameraState != LONGSHOT); + CameraInfo info = CameraHolder.instance().getCameraInfo()[mCameraId]; final boolean isAuxCamera = info.facing > CameraInfo.CAMERA_FACING_FRONT; final boolean isBackCamera = info.facing == CameraInfo.CAMERA_FACING_BACK; final boolean isFrontCamera = info.facing == CameraInfo.CAMERA_FACING_FRONT; - final boolean auxCameraRestartPreviewOnPictureTaken = mApplicationContext - .getResources().getBoolean(R.bool.additional_camera_restart_preview_onPictureTaken); - final boolean backCameraRestartPreviewOnPictureTaken = mApplicationContext - .getResources().getBoolean(R.bool.back_camera_restart_preview_onPictureTaken); - final boolean frontCameraRestartPreviewOnPictureTaken = mApplicationContext - .getResources().getBoolean(R.bool.front_camera_restart_preview_onPictureTaken); + boolean auxCameraRestartPreviewOnPictureTaken = false; + boolean backCameraRestartPreviewOnPictureTaken = false; + boolean frontCameraRestartPreviewOnPictureTaken = false; + if (mApplicationContext != null) { + auxCameraRestartPreviewOnPictureTaken = mApplicationContext.getResources() + .getBoolean(R.bool.additional_camera_restart_preview_onPictureTaken); + backCameraRestartPreviewOnPictureTaken = mApplicationContext.getResources() + .getBoolean(R.bool.back_camera_restart_preview_onPictureTaken); + frontCameraRestartPreviewOnPictureTaken = mApplicationContext.getResources() + .getBoolean(R.bool.front_camera_restart_preview_onPictureTaken); + } if ((isAuxCamera && auxCameraRestartPreviewOnPictureTaken || isBackCamera && backCameraRestartPreviewOnPictureTaken || @@ -1404,6 +1420,7 @@ public class PhotoModule } if (needRestartPreview) { + Log.d(TAG, "JpegPictureCallback: needRestartPreview"); setupPreview(); focusMode = mFocusManager.getFocusMode(); if (CameraUtil.FOCUS_MODE_CONTINUOUS_PICTURE.equals(focusMode) || @@ -1763,7 +1780,7 @@ public class PhotoModule // LGE G4: Disable HDR if luminance is low and flash gets 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(); } @@ -3432,9 +3449,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); } @@ -3442,9 +3459,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); } @@ -4114,8 +4131,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; @@ -4128,7 +4145,20 @@ public class PhotoModule mCameraDevice.setParameters(mParameters); mParameters = mCameraDevice.getParameters(); } + if (mLgeHdrMode) { + mParameters.set(CameraSettings.KEY_SNAPCAM_HDR_MODE, + CameraSettings.LGE_HDR_MODE_ON); + try { + // Force enable ZSL mode for LG HDR + mUI.setPreference(CameraSettings.KEY_ZSL, Parameters.ZSL_ON); + } catch (NullPointerException e) { + } + } } 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)); |