From 217e7fd92d0153cf194bb39ad4ac73a0f122375f Mon Sep 17 00:00:00 2001 From: srowen Date: Wed, 26 May 2010 07:01:58 +0000 Subject: [PATCH] Safer check for Build SDK; restrict Behold II workaround to Cupcake, per Samsung git-svn-id: https://zxing.googlecode.com/svn/trunk@1390 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- .../android/camera/CameraConfigurationManager.java | 4 +++- .../zxing/client/android/camera/CameraManager.java | 14 +++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) 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 d0257ca54..cb8daa38c 100644 --- a/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java +++ b/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java @@ -181,7 +181,9 @@ final class CameraConfigurationManager { private void setFlash(Camera.Parameters parameters) { // FIXME: This is a hack to turn the flash off on the Samsung Galaxy. // And this is a hack-hack to work around a different value on the Behold II - if (Build.MODEL.contains("Behold II")) { + // Restrict Behold II check to Cupcake, per Samsung's advice + if (Build.MODEL.contains("Behold II") && + CameraManager.SDK_INT == Build.VERSION_CODES.CUPCAKE) { parameters.set("flash-value", 1); } else { parameters.set("flash-value", 2); diff --git a/android/src/com/google/zxing/client/android/camera/CameraManager.java b/android/src/com/google/zxing/client/android/camera/CameraManager.java index 7824da410..53c11ba88 100755 --- a/android/src/com/google/zxing/client/android/camera/CameraManager.java +++ b/android/src/com/google/zxing/client/android/camera/CameraManager.java @@ -50,6 +50,18 @@ public final class CameraManager { private static CameraManager cameraManager; + static final int SDK_INT; // Later we can use Build.VERSION.SDK_INT + static { + int sdkInt; + try { + sdkInt = Integer.parseInt(Build.VERSION.SDK); + } catch (NumberFormatException nfe) { + // Just to be safe + sdkInt = 10000; + } + SDK_INT = sdkInt; + } + private final Context context; private final CameraConfigurationManager configManager; private Camera camera; @@ -95,7 +107,7 @@ public final class CameraManager { // Camera.setPreviewCallback() on 1.5 and earlier. For Donut and later, we need to use // the more efficient one shot callback, as the older one can swamp the system and cause it // to run out of memory. We can't use SDK_INT because it was introduced in the Donut SDK. - useOneShotPreviewCallback = Integer.parseInt(Build.VERSION.SDK) > Build.VERSION_CODES.CUPCAKE; + useOneShotPreviewCallback = SDK_INT > Build.VERSION_CODES.CUPCAKE; previewCallback = new PreviewCallback(configManager, useOneShotPreviewCallback); autoFocusCallback = new AutoFocusCallback();