Set a camera parameter to force the flash off. Also fixed the uninstall build targets.
[zxing.git] / android / src / com / google / zxing / client / android / CameraManager.java
index 70ab03f..cb33dd0 100755 (executable)
@@ -16,6 +16,8 @@
 
 package com.google.zxing.client.android;
 
+import com.google.zxing.ResultPoint;
+
 import android.content.Context;
 import android.graphics.Point;
 import android.graphics.Rect;
@@ -26,7 +28,6 @@ import android.util.Log;
 import android.view.Display;
 import android.view.SurfaceHolder;
 import android.view.WindowManager;
-import com.google.zxing.ResultPoint;
 
 import java.io.IOException;
 
@@ -118,7 +119,7 @@ final class CameraManager {
     if (mCamera != null && mPreviewing) {
       mPreviewHandler = handler;
       mPreviewMessage = message;
-      mCamera.setPreviewCallback(previewCallback);
+      mCamera.setOneShotPreviewCallback(previewCallback);
     }
   }
 
@@ -175,7 +176,6 @@ final class CameraManager {
    */
   private final Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
     public void onPreviewFrame(byte[] data, Camera camera) {
-      camera.setPreviewCallback(null);
       if (mPreviewHandler != null) {
         Message message = mPreviewHandler.obtainMessage(mPreviewMessage, mScreenResolution.x,
             mScreenResolution.y, data);
@@ -204,6 +204,9 @@ final class CameraManager {
   private void setCameraParameters() {
     Camera.Parameters parameters = mCamera.getParameters();
     parameters.setPreviewSize(mScreenResolution.x, mScreenResolution.y);
+
+    // Disables the built-in flash if present. Hopefully devices will honor this setting.
+    parameters.set("flash-mode", "off");
     mCamera.setParameters(parameters);
     Log.v(TAG, "Setting params for preview: width " + mScreenResolution.x + " height " +
         mScreenResolution.y);