diff options
author | Steve Kondik <shade@chemlab.org> | 2014-02-26 07:43:28 +0100 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-09-17 23:26:02 +0300 |
commit | bd61c03ea0b5fbe04d99f35a8f711a0166b90467 (patch) | |
tree | 9ab2a370dc8f097b106c220702c60c0052e0c781 | |
parent | 29de2baf38372023965694610dcbfe3b35855ca9 (diff) | |
download | android_packages_apps_Snap-bd61c03ea0b5fbe04d99f35a8f711a0166b90467.tar.gz android_packages_apps_Snap-bd61c03ea0b5fbe04d99f35a8f711a0166b90467.tar.bz2 android_packages_apps_Snap-bd61c03ea0b5fbe04d99f35a8f711a0166b90467.zip |
camera: Make some parameter lookups safer
* Unsupported parameters that return int values will throw an exception
at the framework level if they aren't supported. Handle this
better and prevent crashes.
Change-Id: If5a3807dba33167ef95e4ec9e9cbeb15ed4ed591
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 66 |
1 files changed, 45 insertions, 21 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 15e69afe0..0985272e3 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1641,9 +1641,9 @@ public class PhotoModule overrideCameraSettings(flashMode, null, null, exposureCompensation, touchAfAec, mParameters.getAutoExposure(), - Integer.toString(mParameters.getSaturation()), - Integer.toString(mParameters.getContrast()), - Integer.toString(mParameters.getSharpness()), + getSaturationSafe(), + getContrastSafe(), + getSharpnessSafe(), colorEffect, mSceneMode, redeyeReduction, aeBracketing); mUI.overrideSettings(CameraSettings.KEY_LONGSHOT, @@ -1781,9 +1781,9 @@ public class PhotoModule overrideCameraSettings(flashMode, whiteBalance, focusMode, exposureCompensation, touchAfAec, mParameters.getAutoExposure(), - Integer.toString(mParameters.getSaturation()), - Integer.toString(mParameters.getContrast()), - Integer.toString(mParameters.getSharpness()), + getSaturationSafe(), + getContrastSafe(), + getSharpnessSafe(), colorEffect, sceneMode, redeyeReduction, aeBracketing); if (CameraUtil.SCENE_MODE_HDR.equals(mSceneMode)) { @@ -2725,6 +2725,39 @@ public class PhotoModule } } + private String getSaturationSafe() { + String ret = null; + if (CameraUtil.isSupported(mParameters, "saturation") && + CameraUtil.isSupported(mParameters, "max-saturation")) { + ret = mPreferences.getString( + CameraSettings.KEY_SATURATION, + mActivity.getString(R.string.pref_camera_saturation_default)); + } + return ret; + } + + private String getContrastSafe() { + String ret = null; + if (CameraUtil.isSupported(mParameters, "contrast") && + CameraUtil.isSupported(mParameters, "max-contrast")) { + ret = mPreferences.getString( + CameraSettings.KEY_CONTRAST, + mActivity.getString(R.string.pref_camera_contrast_default)); + } + return ret; + } + + private String getSharpnessSafe() { + String ret = null; + if (CameraUtil.isSupported(mParameters, "sharpness") && + CameraUtil.isSupported(mParameters, "max-sharpness")) { + ret = mPreferences.getString( + CameraSettings.KEY_SHARPNESS, + mActivity.getString(R.string.pref_camera_sharpness_default)); + } + return ret; + } + /** This can run on a background thread, so don't do UI updates here.*/ private void qcomUpdateCameraParametersPreference() { //qcom Related Parameter update @@ -2843,11 +2876,8 @@ public class PhotoModule mParameters.setColorEffect(colorEffect); } //Set Saturation - if (CameraUtil.isSupported(mParameters, "saturation") && - CameraUtil.isSupported(mParameters, "max-saturation")) { - String saturationStr = mPreferences.getString( - CameraSettings.KEY_SATURATION, - mActivity.getString(R.string.pref_camera_saturation_default)); + String saturationStr = getSaturationSafe(); + if (saturationStr != null) { int saturation = Integer.parseInt(saturationStr); Log.v(TAG, "Saturation value =" + saturation); if((0 <= saturation) && (saturation <= mParameters.getMaxSaturation())){ @@ -2855,11 +2885,8 @@ public class PhotoModule } } // Set contrast parameter. - if (CameraUtil.isSupported(mParameters, "contrast") && - CameraUtil.isSupported(mParameters, "max-contrast")) { - String contrastStr = mPreferences.getString( - CameraSettings.KEY_CONTRAST, - mActivity.getString(R.string.pref_camera_contrast_default)); + String contrastStr = getContrastSafe(); + if (contrastStr != null) { int contrast = Integer.parseInt(contrastStr); Log.v(TAG, "Contrast value =" + contrast); if ((0 <= contrast) && (contrast <= mParameters.getMaxContrast())) { @@ -2867,11 +2894,8 @@ public class PhotoModule } } // Set sharpness parameter - if (CameraUtil.isSupported(mParameters, "sharpness") && - CameraUtil.isSupported(mParameters, "max-sharpness")) { - String sharpnessStr = mPreferences.getString( - CameraSettings.KEY_SHARPNESS, - mActivity.getString(R.string.pref_camera_sharpness_default)); + String sharpnessStr = getSharpnessSafe(); + if (sharpnessStr != null) { int sharpness = Integer.parseInt(sharpnessStr) * (mParameters.getMaxSharpness() / MAX_SHARPNESS_LEVEL); Log.v(TAG, "Sharpness value =" + sharpness); |