From a20f1a2dcf9ffc14b25c09afebc3e8030c86bd3d Mon Sep 17 00:00:00 2001 From: srowen Date: Sun, 30 Sep 2012 09:29:41 +0000 Subject: [PATCH] Issue 1377 work around devices that fail to return valid preview sizes git-svn-id: https://zxing.googlecode.com/svn/trunk@2434 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- .../android/camera/CameraConfigurationManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java b/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java index d7ec7f1ab..fe0a7d9ad 100644 --- a/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java +++ b/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java @@ -175,8 +175,15 @@ final class CameraConfigurationManager { private Point findBestPreviewSizeValue(Camera.Parameters parameters, Point screenResolution) { + List rawSupportedSizes = parameters.getSupportedPreviewSizes(); + if (rawSupportedSizes == null) { + Log.w(TAG, "Device returned no supported preview sizes; using default"); + Camera.Size defaultSize = parameters.getPreviewSize(); + return new Point(defaultSize.width, defaultSize.height); + } + // Sort by size, descending - List supportedPreviewSizes = new ArrayList(parameters.getSupportedPreviewSizes()); + List supportedPreviewSizes = new ArrayList(rawSupportedSizes); Collections.sort(supportedPreviewSizes, new Comparator() { @Override public int compare(Camera.Size a, Camera.Size b) {