From 70dbc05d00a5e6011f532d029c50bfb4a17a2e57 Mon Sep 17 00:00:00 2001 From: codeworkx Date: Sun, 13 Aug 2017 12:22:05 +0200 Subject: Snap: add missing null check on isCamera2Supported Change-Id: Ic1437db15763cf342088b8911298433d9ccd26ae --- src/com/android/camera/util/CameraUtil.java | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 214e71601..61cced296 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -383,18 +383,22 @@ public class CameraUtil { android.hardware.camera2.CameraManager manager = (android.hardware.camera2.CameraManager)context.getSystemService(Context.CAMERA_SERVICE); try { - CameraCharacteristics characteristics = manager.getCameraCharacteristics(manager.getCameraIdList()[0]); - int deviceLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); - - switch (deviceLevel) { - case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED: - return true; - case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL: - return true; - case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_3: - return true; - default: - return false; + String[] cameraIds = manager.getCameraIdList(); + + if (cameraIds != null && cameraIds.length > 0) { + CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraIds[0]); + int deviceLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); + + switch (deviceLevel) { + case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED: + return true; + case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL: + return true; + case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_3: + return true; + default: + return false; + } } } catch(CameraAccessException | NumberFormatException e) { Log.e(TAG, "exception trying to get camera characteristics"); -- cgit v1.2.3