diff options
author | Steve Kondik <shade@chemlab.org> | 2014-02-26 07:43:28 +0100 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-11-02 12:22:25 -0700 |
commit | 243f0b81b83068045ba425049db91810bbd0927b (patch) | |
tree | 8dc2f50b6e0f651a30fc813d13d472386794b5bd /src/com/android | |
parent | 23d3b723853b3f4cdae9780cc6d26b32f49922ad (diff) | |
download | android_packages_apps_Snap-243f0b81b83068045ba425049db91810bbd0927b.tar.gz android_packages_apps_Snap-243f0b81b83068045ba425049db91810bbd0927b.tar.bz2 android_packages_apps_Snap-243f0b81b83068045ba425049db91810bbd0927b.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
Diffstat (limited to 'src/com/android')
-rwxr-xr-x | 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 c6b0eb836..8ce567f86 100755 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1775,9 +1775,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, @@ -1936,9 +1936,9 @@ public class PhotoModule overrideCameraSettings(null, 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); } else if (mFocusManager.isZslEnabled()) { @@ -3021,6 +3021,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 @@ -3143,11 +3176,8 @@ public class PhotoModule } //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())){ @@ -3155,11 +3185,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())) { @@ -3167,11 +3194,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); |