Don't set zoom without knowing maximum for sure
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Fri, 19 Mar 2010 16:17:00 +0000 (16:17 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Fri, 19 Mar 2010 16:17:00 +0000 (16:17 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@1247 59b500cc-1b3d-0410-9834-0bbf25fbcc57

android/src/com/google/zxing/client/android/CameraManager.java

index 2189bc9..cc9b83a 100755 (executable)
@@ -441,26 +441,30 @@ final class CameraManager {
       }
     }
 
-    String takingPictureZoomString = parameters.get("taking-picture-zoom-max");
-    if (takingPictureZoomString != null) {
+    String takingPictureZoomMaxString = parameters.get("taking-picture-zoom-max");
+    if (takingPictureZoomMaxString != null) {
       try {
-        int tenMaxZoom = Integer.parseInt(takingPictureZoomString);
+        int tenMaxZoom = Integer.parseInt(takingPictureZoomMaxString);
         if (tenDesiredZoom > tenMaxZoom) {
           tenDesiredZoom = tenMaxZoom;
         }
       } catch (NumberFormatException nfe) {
-        Log.w(TAG, "Bad taking-picture-zoom-max: " + takingPictureZoomString);
+        Log.w(TAG, "Bad taking-picture-zoom-max: " + takingPictureZoomMaxString);
       }
     }
 
 
     // Set zoom. This helps encourage the user to pull back.
     // Some devices like the Behold have a zoom parameter
-    parameters.set("zoom", String.valueOf(tenDesiredZoom / 10.0));
+    if (maxZoomString != null) {
+      parameters.set("zoom", String.valueOf(tenDesiredZoom / 10.0));
+    }
 
     // Most devices, like the Hero, appear to expose this zoom parameter.
     // It takes on values like "27" which appears to mean 2.7x zoom
-    parameters.set("taking-picture-zoom", tenDesiredZoom);
+    if (takingPictureZoomMaxString != null) {    
+      parameters.set("taking-picture-zoom", tenDesiredZoom);
+    }
   }
 
   /*