diff options
author | Sol Boucher <solb@google.com> | 2014-08-12 22:13:48 -0700 |
---|---|---|
committer | Sol Boucher <solb@google.com> | 2014-08-13 13:44:35 -0700 |
commit | bc9c0e2cb071b085ecc5646751fb59f5145d51b1 (patch) | |
tree | 2824b999dfc7a15cee6e6df939f8baf96a1156da /camera2/portability/src | |
parent | 47497bee8a3550af79f9a32c9362d7ee78364a71 (diff) | |
download | android_frameworks_ex-bc9c0e2cb071b085ecc5646751fb59f5145d51b1.tar.gz android_frameworks_ex-bc9c0e2cb071b085ecc5646751fb59f5145d51b1.tar.bz2 android_frameworks_ex-bc9c0e2cb071b085ecc5646751fb59f5145d51b1.zip |
camera2-portability: Improve capability conversions' null-safety
This makes it harder for unexpected nulls in CaptureRequest templates to cause
exceptions while unboxing Integer wrappers. Such crashes were observed on some
devices while running on the legacy layer, especially with scene modes.
Change-Id: I0cae95534f138e97f2c589d15e81f77b4f2141f7
Diffstat (limited to 'camera2/portability/src')
-rw-r--r-- | camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java index 288ded7..efa68e8 100644 --- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java +++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java @@ -84,13 +84,21 @@ public class AndroidCamera2Settings extends CameraSettings { // TODO: mCurrentZoomIndex mExposureCompensationIndex = queryTemplateDefaultOrMakeOneUp(CONTROL_AE_EXPOSURE_COMPENSATION, 0); + mCurrentFlashMode = flashModeFromRequest(); - mCurrentFocusMode = AndroidCamera2Capabilities.focusModeFromInt( - mTemplateSettings.get(CONTROL_AF_MODE)); - mCurrentSceneMode = AndroidCamera2Capabilities.sceneModeFromInt( - mTemplateSettings.get(CONTROL_SCENE_MODE)); - mWhiteBalance = AndroidCamera2Capabilities.whiteBalanceFromInt( - mTemplateSettings.get(CONTROL_AWB_MODE)); + Integer currentFocusMode = mTemplateSettings.get(CONTROL_AF_MODE); + if (currentFocusMode != null) { + mCurrentFocusMode = AndroidCamera2Capabilities.focusModeFromInt(currentFocusMode); + } + Integer currentSceneMode = mTemplateSettings.get(CONTROL_SCENE_MODE); + if (currentSceneMode != null) { + mCurrentSceneMode = AndroidCamera2Capabilities.sceneModeFromInt(currentSceneMode); + } + Integer whiteBalance = mTemplateSettings.get(CONTROL_AWB_MODE); + if (whiteBalance != null) { + mWhiteBalance = AndroidCamera2Capabilities.whiteBalanceFromInt(whiteBalance); + } + mVideoStabilizationEnabled = queryTemplateDefaultOrMakeOneUp( CONTROL_VIDEO_STABILIZATION_MODE, CONTROL_VIDEO_STABILIZATION_MODE_OFF) == CONTROL_VIDEO_STABILIZATION_MODE_ON; |