X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=android%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Fclient%2Fandroid%2FCaptureActivityHandler.java;h=46ee8a81f1ffad03f3fc64340e5a49da9f4396c7;hb=c05292a3b7857528925cffee2cc7e747ccf473c6;hp=fd671603ea9657a625be09a81a7d7a46dbcfe1ef;hpb=1fef67f2830ef51e4098a27c425e300eccaef86b;p=zxing.git diff --git a/android/src/com/google/zxing/client/android/CaptureActivityHandler.java b/android/src/com/google/zxing/client/android/CaptureActivityHandler.java index fd671603..46ee8a81 100755 --- a/android/src/com/google/zxing/client/android/CaptureActivityHandler.java +++ b/android/src/com/google/zxing/client/android/CaptureActivityHandler.java @@ -16,7 +16,9 @@ package com.google.zxing.client.android; +import com.google.zxing.BarcodeFormat; import com.google.zxing.Result; +import com.google.zxing.client.android.camera.CameraManager; import android.app.Activity; import android.content.Intent; @@ -25,6 +27,9 @@ import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.util.Log; + +import java.util.Vector; /** * This class handles all the messaging which comprises the state machine for capture. @@ -32,6 +37,9 @@ import android.os.Message; * @author dswitkin@google.com (Daniel Switkin) */ public final class CaptureActivityHandler extends Handler { + + private static final String TAG = CaptureActivityHandler.class.getSimpleName(); + private final CaptureActivity activity; private final DecodeThread decodeThread; private State state; @@ -42,26 +50,24 @@ public final class CaptureActivityHandler extends Handler { DONE } - CaptureActivityHandler(CaptureActivity activity, - String decodeMode, - boolean beginScanning) { + CaptureActivityHandler(CaptureActivity activity, Vector decodeFormats, + String characterSet) { this.activity = activity; - decodeThread = new DecodeThread(activity, decodeMode, + decodeThread = new DecodeThread(activity, decodeFormats, characterSet, new ViewfinderResultPointCallback(activity.getViewfinderView())); decodeThread.start(); state = State.SUCCESS; // Start ourselves capturing previews and decoding. CameraManager.get().startPreview(); - if (beginScanning) { - restartPreviewAndDecode(); - } + restartPreviewAndDecode(); } @Override public void handleMessage(Message message) { switch (message.what) { case R.id.auto_focus: + //Log.d(TAG, "Got auto-focus message"); // When one auto focus pass finishes, start another. This is the closest thing to // continuous AF. It does seem to hunt a bit, but I'm not sure what else to do. if (state == State.PREVIEW) { @@ -69,12 +75,15 @@ public final class CaptureActivityHandler extends Handler { } break; case R.id.restart_preview: + Log.d(TAG, "Got restart preview message"); restartPreviewAndDecode(); break; case R.id.decode_succeeded: + Log.d(TAG, "Got decode succeeded message"); state = State.SUCCESS; Bundle bundle = message.getData(); - Bitmap barcode = bundle == null ? null : (Bitmap) bundle.getParcelable(DecodeThread.BARCODE_BITMAP); + Bitmap barcode = bundle == null ? null : + (Bitmap) bundle.getParcelable(DecodeThread.BARCODE_BITMAP); activity.handleDecode((Result) message.obj, barcode); break; case R.id.decode_failed: @@ -83,12 +92,16 @@ public final class CaptureActivityHandler extends Handler { CameraManager.get().requestPreviewFrame(decodeThread.getHandler(), R.id.decode); break; case R.id.return_scan_result: + Log.d(TAG, "Got return scan result message"); activity.setResult(Activity.RESULT_OK, (Intent) message.obj); activity.finish(); break; case R.id.launch_product_query: + Log.d(TAG, "Got product query message"); String url = (String) message.obj; - activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); + activity.startActivity(intent); break; } } @@ -116,4 +129,5 @@ public final class CaptureActivityHandler extends Handler { activity.drawViewfinder(); } } + }