diff options
author | Wang Han <416810799@qq.com> | 2018-11-14 19:47:52 +0800 |
---|---|---|
committer | dianlujitao <dianlujitao@lineageos.org> | 2018-12-19 14:00:02 +0800 |
commit | 814db6fddccfb06cd9a648144f2eb02f90a6bcac (patch) | |
tree | c88cd4b7f0a2d71ceb7441c6de3528a3713730e4 | |
parent | 23f0bea774b8679513420e0a4309e9e429f77aa2 (diff) | |
download | android_packages_apps_Snap-814db6fddccfb06cd9a648144f2eb02f90a6bcac.tar.gz android_packages_apps_Snap-814db6fddccfb06cd9a648144f2eb02f90a6bcac.tar.bz2 android_packages_apps_Snap-814db6fddccfb06cd9a648144f2eb02f90a6bcac.zip |
Snap: Check various feature support before applying
* Fixes crash on devices which does not support it
Change-Id: I39b9424ad200db6819a11aac6c319a22542d4131
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index aa5fb17c2..ec781ddb7 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -685,7 +685,12 @@ public class CaptureModule implements CameraModule, PhotoController, private void detectHDRMode(CaptureResult result, int id) { String value = mSettingsManager.getValue(SettingsManager.KEY_SCENE_MODE); String autoHdr = mSettingsManager.getValue(SettingsManager.KEY_AUTO_HDR); - Byte hdrScene = result.get(CaptureModule.isHdr); + Byte hdrScene = null; + try { + hdrScene = result.get(CaptureModule.isHdr); + } catch (IllegalArgumentException e) { + // Ignore exception. + } if (value == null || hdrScene == null) return; mAutoHdrEnable = false; if (autoHdr != null && "enable".equals(autoHdr) && "0".equals(value) && hdrScene == 1) { @@ -768,7 +773,12 @@ public class CaptureModule implements CameraModule, PhotoController, } } if (SettingsManager.getInstance().isStatsVisualizerSupport() == 3) { - int[] histogramStats = result.get(CaptureModule.histogramStats); + int[] histogramStats = null; + try { + histogramStats = result.get(CaptureModule.histogramStats); + } catch (IllegalArgumentException e) { + // Ignore exception. + } if (histogramStats != null && mHiston) { /*The first element in the array stores max hist value . Stats data begin from second value*/ @@ -5309,6 +5319,8 @@ public class CaptureModule implements CameraModule, PhotoController, } private void applyExposureMeteringModes(CaptureRequest.Builder request) { + if (!VendorTagUtil.isSupported(request, CaptureModule.exposure_metering)) + return; String value = mSettingsManager.getValue(SettingsManager.KEY_EXPOSURE_METERING_MODE); if (value != null) { int intValue = Integer.parseInt(value); |