summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2014-02-26 07:43:28 +0100
committerMichael Bestas <mikeioannina@gmail.com>2015-09-17 23:26:02 +0300
commitbd61c03ea0b5fbe04d99f35a8f711a0166b90467 (patch)
tree9ab2a370dc8f097b106c220702c60c0052e0c781
parent29de2baf38372023965694610dcbfe3b35855ca9 (diff)
downloadandroid_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.java66
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);