[SCM] Multi-format 1D/2D barcode image processing library branch, upstream, updated. 24d4480bc48cf9eabf7b2bd2f528248b0e458809
dswitkin at google.com
dswitkin at google.com
Wed Aug 4 01:32:19 UTC 2010
The following commit has been merged in the upstream branch:
commit c05292a3b7857528925cffee2cc7e747ccf473c6
Author: dswitkin at google.com <dswitkin at google.com@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Date: Fri Jun 18 16:17:12 2010 +0000
- Made sure barcode scanning always restarts when the activity is resumed.
- Fixed a potential ANR - we can never sleep on the main thread.
- Bumped the version number.
- Minor cleanup and 100 columns fixes.
git-svn-id: http://zxing.googlecode.com/svn/trunk@1447 59b500cc-1b3d-0410-9834-0bbf25fbcc57
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index 2c28e2c..4772a2f 100755
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -20,8 +20,8 @@ version to be published. The next versionCode will be 7, regardless of whether t
versionName is 2.31, 2.4, or 3.0. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.zxing.client.android"
- android:versionName="3.31"
- android:versionCode="53">
+ android:versionName="3.32 beta 1"
+ android:versionCode="54">
<!-- We require Cupcake (Android 1.5) or later, but are really targeting Donut. -->
<uses-sdk android:minSdkVersion="3"
android:targetSdkVersion="4"/>
diff --git a/android/src/com/google/zxing/client/android/CaptureActivity.java b/android/src/com/google/zxing/client/android/CaptureActivity.java
index c82e4a8..c2276ee 100755
--- a/android/src/com/google/zxing/client/android/CaptureActivity.java
+++ b/android/src/com/google/zxing/client/android/CaptureActivity.java
@@ -16,8 +16,6 @@
package com.google.zxing.client.android;
-import android.util.TypedValue;
-import android.widget.Toast;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Result;
import com.google.zxing.ResultMetadataType;
@@ -53,6 +51,7 @@ import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.text.ClipboardManager;
import android.util.Log;
+import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
@@ -64,13 +63,14 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashSet;
import java.util.List;
-import java.util.Date;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
@@ -81,6 +81,7 @@ import java.util.regex.Pattern;
* example included in the Android SDK.
*
* @author dswitkin at google.com (Daniel Switkin)
+ * @author Sean Owen
*/
public final class CaptureActivity extends Activity implements SurfaceHolder.Callback {
@@ -166,7 +167,14 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
private String versionName;
private HistoryManager historyManager;
- private final OnCompletionListener beepListener = new BeepListener();
+ /**
+ * When the beep has finished playing, rewind to queue up another one.
+ */
+ private final OnCompletionListener beepListener = new OnCompletionListener() {
+ public void onCompletion(MediaPlayer mediaPlayer) {
+ mediaPlayer.seekTo(0);
+ }
+ };
private final DialogInterface.OnClickListener aboutListener =
new DialogInterface.OnClickListener() {
@@ -209,6 +217,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
@Override
protected void onResume() {
super.onResume();
+ resetStatusView();
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
@@ -230,37 +239,30 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
// Scan the formats the intent requested, and return the result to the calling activity.
source = Source.NATIVE_APP_INTENT;
decodeFormats = parseDecodeFormats(intent);
- resetStatusView();
} else if (dataString != null && dataString.contains(PRODUCT_SEARCH_URL_PREFIX) &&
dataString.contains(PRODUCT_SEARCH_URL_SUFFIX)) {
// Scan only products and send the result to mobile Product Search.
source = Source.PRODUCT_SEARCH_LINK;
sourceUrl = dataString;
decodeFormats = PRODUCT_FORMATS;
- resetStatusView();
} else if (dataString != null && dataString.startsWith(ZXING_URL)) {
// Scan formats requested in query string (all formats if none specified).
- // If a return URL is specified, send the results there. Otherwise, handle the results ourselves.
+ // If a return URL is specified, send the results there. Otherwise, handle it ourselves.
source = Source.ZXING_LINK;
sourceUrl = dataString;
Uri inputUri = Uri.parse(sourceUrl);
returnUrlTemplate = inputUri.getQueryParameter(RETURN_URL_PARAM);
decodeFormats = parseDecodeFormats(inputUri);
- resetStatusView();
} else {
// Scan all formats and handle the results ourselves (launched from Home).
source = Source.NONE;
decodeFormats = null;
- resetStatusView();
}
characterSet = intent.getStringExtra(Intents.Scan.CHARACTER_SET);
} else {
source = Source.NONE;
decodeFormats = null;
characterSet = null;
- if (lastResult == null) {
- resetStatusView();
- }
}
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
@@ -471,15 +473,10 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
if (prefs.getBoolean(PreferencesActivity.KEY_BULK_MODE, false)) {
Toast.makeText(this, R.string.msg_bulk_mode_scanned, Toast.LENGTH_SHORT).show();
// Wait a moment or else it will scan the same barcode continuously about 3 times
- try {
- Thread.sleep(BULK_MODE_SCAN_DELAY_MS);
- } catch (InterruptedException ie) {
- // continue
- }
- resetStatusView();
if (handler != null) {
- handler.sendEmptyMessage(R.id.restart_preview);
+ handler.sendEmptyMessageDelayed(R.id.restart_preview, BULK_MODE_SCAN_DELAY_MS);
}
+ resetStatusView();
} else {
handleDecodeInternally(rawResult, barcode);
}
@@ -570,8 +567,8 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
TextView contentsTextView = (TextView) findViewById(R.id.contents_text_view);
CharSequence displayContents = resultHandler.getDisplayContents();
contentsTextView.setText(displayContents);
- // Crudely scale betweeen 22 and 36 -- bigger font for shorter text
- int scaledSize = Math.max(22, 36 - displayContents.length() / 4);
+ // Crudely scale betweeen 22 and 32 -- bigger font for shorter text
+ int scaledSize = Math.max(22, 32 - displayContents.length() / 4);
contentsTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, scaledSize);
int buttonCount = resultHandler.getButtonCount();
@@ -631,7 +628,8 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
// Replace each occurrence of RETURN_CODE_PLACEHOLDER in the returnUrlTemplate
// with the scanned code. This allows both queries and REST-style URLs to work.
Message message = Message.obtain(handler, R.id.launch_product_query);
- message.obj = returnUrlTemplate.replace(RETURN_CODE_PLACEHOLDER, resultHandler.getDisplayContents().toString());
+ message.obj = returnUrlTemplate.replace(RETURN_CODE_PLACEHOLDER,
+ resultHandler.getDisplayContents().toString());
handler.sendMessageDelayed(message, INTENT_RESULT_DURATION);
}
}
@@ -717,8 +715,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
return;
}
if (handler == null) {
- boolean beginScanning = lastResult == null;
- handler = new CaptureActivityHandler(this, decodeFormats, characterSet, beginScanning);
+ handler = new CaptureActivityHandler(this, decodeFormats, characterSet);
}
}
@@ -745,13 +742,4 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
public void drawViewfinder() {
viewfinderView.drawViewfinder();
}
-
- /**
- * When the beep has finished playing, rewind to queue up another one.
- */
- private static class BeepListener implements OnCompletionListener {
- public void onCompletion(MediaPlayer mediaPlayer) {
- mediaPlayer.seekTo(0);
- }
- }
}
diff --git a/android/src/com/google/zxing/client/android/CaptureActivityHandler.java b/android/src/com/google/zxing/client/android/CaptureActivityHandler.java
index 0507fbe..46ee8a8 100755
--- a/android/src/com/google/zxing/client/android/CaptureActivityHandler.java
+++ b/android/src/com/google/zxing/client/android/CaptureActivityHandler.java
@@ -50,10 +50,8 @@ public final class CaptureActivityHandler extends Handler {
DONE
}
- CaptureActivityHandler(CaptureActivity activity,
- Vector<BarcodeFormat> decodeFormats,
- String characterSet,
- boolean beginScanning) {
+ CaptureActivityHandler(CaptureActivity activity, Vector<BarcodeFormat> decodeFormats,
+ String characterSet) {
this.activity = activity;
decodeThread = new DecodeThread(activity, decodeFormats, characterSet,
new ViewfinderResultPointCallback(activity.getViewfinderView()));
@@ -62,9 +60,7 @@ public final class CaptureActivityHandler extends Handler {
// Start ourselves capturing previews and decoding.
CameraManager.get().startPreview();
- if (beginScanning) {
- restartPreviewAndDecode();
- }
+ restartPreviewAndDecode();
}
@Override
@@ -86,7 +82,8 @@ public final class CaptureActivityHandler extends Handler {
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:
@@ -103,7 +100,7 @@ public final class CaptureActivityHandler extends Handler {
Log.d(TAG, "Got product query message");
String url = (String) message.obj;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
activity.startActivity(intent);
break;
}
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 cb8daa3..6e6cd8e 100644
--- a/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java
+++ b/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java
@@ -16,8 +16,6 @@
package com.google.zxing.client.android.camera;
-import java.util.regex.Pattern;
-
import android.content.Context;
import android.graphics.Point;
import android.hardware.Camera;
@@ -26,6 +24,8 @@ import android.util.Log;
import android.view.Display;
import android.view.WindowManager;
+import java.util.regex.Pattern;
+
final class CameraConfigurationManager {
private static final String TAG = CameraConfigurationManager.class.getSimpleName();
@@ -118,7 +118,8 @@ final class CameraConfigurationManager {
return cameraResolution;
}
- private static Point findBestPreviewSizeValue(String previewSizeValueString, Point screenResolution) {
+ private static Point findBestPreviewSizeValue(String previewSizeValueString,
+ Point screenResolution) {
int bestX = 0;
int bestY = 0;
int diff = Integer.MAX_VALUE;
--
Multi-format 1D/2D barcode image processing library
More information about the Pkg-google-commits
mailing list