From 27dbe6a711f1e0f8897ccf2c2e9b3de55e7678bf Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Sun, 3 May 2015 18:20:28 +0200 Subject: Refactor ContinuousCaptureActivity to use the compound barcode view. --- .../example/zxing/ContinuousCaptureActivity.java | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sample/src/main/java/example/zxing/ContinuousCaptureActivity.java (limited to 'sample/src/main/java/example/zxing/ContinuousCaptureActivity.java') diff --git a/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java b/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java new file mode 100644 index 00000000..4853b7de --- /dev/null +++ b/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java @@ -0,0 +1,91 @@ +package example.zxing; + +import android.app.Activity; +import android.content.res.Configuration; +import android.graphics.Color; +import android.os.Bundle; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.google.zxing.ResultPoint; +import com.journeyapps.barcodescanner.BarcodeCallback; +import com.journeyapps.barcodescanner.BarcodeResult; +import com.journeyapps.barcodescanner.DefaultBarcodeScannerView; +import com.journeyapps.barcodescanner.ViewfinderView; + +import java.util.List; + +/** + * + */ +public class ContinuousCaptureActivity extends Activity { + private static final String TAG = ContinuousCaptureActivity.class.getSimpleName(); + private DefaultBarcodeScannerView barcodeView; + + private BarcodeCallback callback = new BarcodeCallback() { + @Override + public void barcodeResult(BarcodeResult result) { + if (result.getText() != null) { + barcodeView.setStatusText(result.getText()); + } + //Added preview of scanned barcode + ImageView imageView = (ImageView) findViewById(R.id.barcodePreview); + imageView.setImageBitmap(result.getBitmapWithResultPoints(Color.YELLOW)); + } + + @Override + public void possibleResultPoints(List resultPoints) { + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.continuous_scan); + + barcodeView = (DefaultBarcodeScannerView) findViewById(R.id.barcode_scanner); + barcodeView.decodeContinuous(callback); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + Log.d(TAG, "Configuration changed"); + } + + @Override + protected void onResume() { + super.onResume(); + + barcodeView.resume(); + } + + @Override + protected void onPause() { + super.onPause(); + + barcodeView.pause(); + } + + public void pause(View view) { + barcodeView.pause(); + } + + public void resume(View view) { + barcodeView.resume(); + } + + public void triggerScan(View view) { + barcodeView.decodeSingle(callback); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + return barcodeView.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); + } +} -- cgit v1.2.3 From ef569d6460c5e752de3b75023a01dc8c5c668abe Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Sun, 3 May 2015 18:25:58 +0200 Subject: Rename DefaultBarcodeScannerView to CompoundBarcodeView. --- .../example/zxing/ContinuousCaptureActivity.java | 15 +- .../java/example/zxing/ToolbarCaptureActivity.java | 6 +- sample/src/main/res/layout/capture_appcompat.xml | 2 +- sample/src/main/res/layout/continuous_scan.xml | 4 +- .../res/layout/zxing_capture.xml | 2 +- .../barcodescanner/CaptureActivity.java | 31 +--- .../journeyapps/barcodescanner/CaptureManager.java | 4 +- .../barcodescanner/CompoundBarcodeView.java | 183 +++++++++++++++++++++ .../barcodescanner/DefaultBarcodeScannerView.java | 164 ------------------ 9 files changed, 197 insertions(+), 214 deletions(-) create mode 100644 zxing-android-embedded/src/com/journeyapps/barcodescanner/CompoundBarcodeView.java delete mode 100644 zxing-android-embedded/src/com/journeyapps/barcodescanner/DefaultBarcodeScannerView.java (limited to 'sample/src/main/java/example/zxing/ContinuousCaptureActivity.java') diff --git a/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java b/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java index 4853b7de..59e1c9a9 100644 --- a/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java +++ b/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java @@ -8,13 +8,11 @@ import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.widget.ImageView; -import android.widget.TextView; import com.google.zxing.ResultPoint; import com.journeyapps.barcodescanner.BarcodeCallback; import com.journeyapps.barcodescanner.BarcodeResult; -import com.journeyapps.barcodescanner.DefaultBarcodeScannerView; -import com.journeyapps.barcodescanner.ViewfinderView; +import com.journeyapps.barcodescanner.CompoundBarcodeView; import java.util.List; @@ -23,7 +21,7 @@ import java.util.List; */ public class ContinuousCaptureActivity extends Activity { private static final String TAG = ContinuousCaptureActivity.class.getSimpleName(); - private DefaultBarcodeScannerView barcodeView; + private CompoundBarcodeView barcodeView; private BarcodeCallback callback = new BarcodeCallback() { @Override @@ -47,17 +45,10 @@ public class ContinuousCaptureActivity extends Activity { setContentView(R.layout.continuous_scan); - barcodeView = (DefaultBarcodeScannerView) findViewById(R.id.barcode_scanner); + barcodeView = (CompoundBarcodeView) findViewById(R.id.barcode_scanner); barcodeView.decodeContinuous(callback); } - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - - Log.d(TAG, "Configuration changed"); - } - @Override protected void onResume() { super.onResume(); diff --git a/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java b/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java index 4b0ace78..eeea946b 100644 --- a/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java +++ b/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java @@ -6,14 +6,14 @@ import android.support.v7.widget.Toolbar; import android.view.KeyEvent; import com.journeyapps.barcodescanner.CaptureManager; -import com.journeyapps.barcodescanner.DefaultBarcodeScannerView; +import com.journeyapps.barcodescanner.CompoundBarcodeView; /** * */ public class ToolbarCaptureActivity extends ActionBarActivity { private CaptureManager capture; - private DefaultBarcodeScannerView barcodeScannerView; + private CompoundBarcodeView barcodeScannerView; @Override protected void onCreate(Bundle savedInstanceState) { @@ -26,7 +26,7 @@ public class ToolbarCaptureActivity extends ActionBarActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - barcodeScannerView = (DefaultBarcodeScannerView)findViewById(R.id.zxing_barcode_scanner); + barcodeScannerView = (CompoundBarcodeView)findViewById(R.id.zxing_barcode_scanner); capture = new CaptureManager(this, barcodeScannerView); capture.initializeFromIntent(getIntent(), savedInstanceState); diff --git a/sample/src/main/res/layout/capture_appcompat.xml b/sample/src/main/res/layout/capture_appcompat.xml index ca78e0cd..b1ffaffa 100644 --- a/sample/src/main/res/layout/capture_appcompat.xml +++ b/sample/src/main/res/layout/capture_appcompat.xml @@ -29,7 +29,7 @@ android:background="?attr/colorPrimary" app:theme="@style/ThemeOverlay.AppCompat.ActionBar"/> - - - + - diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java index 078cb56e..f252c806 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java @@ -1,51 +1,24 @@ package com.journeyapps.barcodescanner; import android.app.Activity; -import android.app.AlertDialog; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.pm.ActivityInfo; -import android.content.res.Configuration; import android.os.Bundle; -import android.os.Handler; -import android.util.Log; -import android.view.Display; import android.view.KeyEvent; -import android.view.Surface; -import android.view.Window; -import android.view.WindowManager; -import android.widget.TextView; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.MultiFormatReader; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.client.android.BeepManager; -import com.google.zxing.client.android.DecodeFormatManager; -import com.google.zxing.client.android.DecodeHintManager; -import com.google.zxing.client.android.InactivityTimer; -import com.google.zxing.client.android.Intents; import com.google.zxing.client.android.R; -import com.journeyapps.barcodescanner.camera.CameraSettings; - -import java.util.List; -import java.util.Map; -import java.util.Set; /** * */ public class CaptureActivity extends Activity { private CaptureManager capture; - private DefaultBarcodeScannerView barcodeScannerView; + private CompoundBarcodeView barcodeScannerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.zxing_capture); - barcodeScannerView = (DefaultBarcodeScannerView)findViewById(R.id.zxing_barcode_scanner); + barcodeScannerView = (CompoundBarcodeView)findViewById(R.id.zxing_barcode_scanner); capture = new CaptureManager(this, barcodeScannerView); capture.initializeFromIntent(getIntent(), savedInstanceState); diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java index 3e24a61f..d1a9c23c 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java @@ -44,7 +44,7 @@ public class CaptureManager { private static final String TAG = CaptureManager.class.getSimpleName(); private Activity activity; - private DefaultBarcodeScannerView barcodeView; + private CompoundBarcodeView barcodeView; private int orientationLock = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; private static final String SAVED_ORIENTATION_LOCK = "SAVED_ORIENTATION_LOCK"; @@ -102,7 +102,7 @@ public class CaptureManager { } }; - public CaptureManager(Activity activity, DefaultBarcodeScannerView barcodeView) { + public CaptureManager(Activity activity, CompoundBarcodeView barcodeView) { this.activity = activity; this.barcodeView = barcodeView; barcodeView.getBarcodeView().addStateListener(stateListener); diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CompoundBarcodeView.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CompoundBarcodeView.java new file mode 100644 index 00000000..50859d15 --- /dev/null +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CompoundBarcodeView.java @@ -0,0 +1,183 @@ +package com.journeyapps.barcodescanner; + +import android.content.Context; +import android.content.Intent; +import android.util.AttributeSet; +import android.view.KeyEvent; +import android.widget.FrameLayout; +import android.widget.TextView; + +import com.google.zxing.BarcodeFormat; +import com.google.zxing.DecodeHintType; +import com.google.zxing.MultiFormatReader; +import com.google.zxing.ResultPoint; +import com.google.zxing.client.android.DecodeFormatManager; +import com.google.zxing.client.android.DecodeHintManager; +import com.google.zxing.client.android.Intents; +import com.google.zxing.client.android.R; +import com.journeyapps.barcodescanner.camera.CameraSettings; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * Encapsulates BarcodeView, ViewfinderView and status text. + * + * To customize the UI, use BarcodeView and ViewfinderView directly. + */ +public class CompoundBarcodeView extends FrameLayout { + private BarcodeView barcodeView; + private ViewfinderView viewFinder; + private TextView statusView; + + private class WrappedCallback implements BarcodeCallback { + private BarcodeCallback delegate; + + public WrappedCallback(BarcodeCallback delegate) { + this.delegate = delegate; + } + + @Override + public void barcodeResult(BarcodeResult result) { + delegate.barcodeResult(result); + } + + @Override + public void possibleResultPoints(List resultPoints) { + for (ResultPoint point : resultPoints) { + viewFinder.addPossibleResultPoint(point); + } + delegate.possibleResultPoints(resultPoints); + } + } + + public CompoundBarcodeView(Context context) { + super(context); + initialize(); + } + + public CompoundBarcodeView(Context context, AttributeSet attrs) { + super(context, attrs); + initialize(); + } + + public CompoundBarcodeView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + initialize(); + } + + private void initialize() { + inflate(getContext(), R.layout.zxing_barcode_scanner, this); + + barcodeView = (BarcodeView) findViewById(R.id.zxing_barcode_surface); + + viewFinder = (ViewfinderView) findViewById(R.id.zxing_viewfinder_view); + viewFinder.setCameraPreview(barcodeView); + + statusView = (TextView) findViewById(R.id.zxing_status_view); + } + + /** + * Convenience method to initialize camera id, decode formats and prompt message from an intent. + * + * @param intent the intent, as generated by IntentIntegrator + */ + public void initializeFromIntent(Intent intent) { + // Scan the formats the intent requested, and return the result to the calling activity. + Set decodeFormats = DecodeFormatManager.parseDecodeFormats(intent); + Map decodeHints = DecodeHintManager.parseDecodeHints(intent); + + CameraSettings settings = new CameraSettings(); + + if (intent.hasExtra(Intents.Scan.CAMERA_ID)) { + int cameraId = intent.getIntExtra(Intents.Scan.CAMERA_ID, -1); + if (cameraId >= 0) { + settings.setRequestedCameraId(cameraId); + } + } + + String customPromptMessage = intent.getStringExtra(Intents.Scan.PROMPT_MESSAGE); + if (customPromptMessage != null) { + setStatusText(customPromptMessage); + } + + String characterSet = intent.getStringExtra(Intents.Scan.CHARACTER_SET); + + MultiFormatReader reader = new MultiFormatReader(); + reader.setHints(decodeHints); + + barcodeView.setCameraSettings(settings); + barcodeView.setDecoderFactory(new DefaultDecoderFactory(decodeFormats, decodeHints, characterSet)); + } + + public void setStatusText(String text) { + statusView.setText(text); + } + + + /** + * @see BarcodeView#pause() + */ + public void pause() { + barcodeView.pause(); + } + + /** + * @see BarcodeView#resume() + */ + public void resume() { + barcodeView.resume(); + } + + public BarcodeView getBarcodeView() { + return (BarcodeView) findViewById(R.id.zxing_barcode_surface); + } + + public ViewfinderView getViewFinder() { + return viewFinder; + } + + public TextView getStatusView() { + return statusView; + } + + + /** + * @see BarcodeView#decodeSingle(BarcodeCallback) + */ + public void decodeSingle(BarcodeCallback callback) { + barcodeView.decodeSingle(new WrappedCallback(callback)); + + } + + /** + * @see BarcodeView#decodeContinuous(BarcodeCallback) + */ + public void decodeContinuous(BarcodeCallback callback) { + barcodeView.decodeContinuous(new WrappedCallback(callback)); + } + + @Override + /** + * Handles focus, camera, volume up and volume down keys. + * + * Note that this view is not usually focused, so the Activity should call this directly. + */ + public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode) { + case KeyEvent.KEYCODE_FOCUS: + case KeyEvent.KEYCODE_CAMERA: + // Handle these events so they don't launch the Camera app + return true; + // Use volume up/down to turn on light + case KeyEvent.KEYCODE_VOLUME_DOWN: + barcodeView.setTorch(false); + return true; + case KeyEvent.KEYCODE_VOLUME_UP: + barcodeView.setTorch(true); + return true; + } + return super.onKeyDown(keyCode, event); + } +} diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/DefaultBarcodeScannerView.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/DefaultBarcodeScannerView.java deleted file mode 100644 index 21ad3d0a..00000000 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/DefaultBarcodeScannerView.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.journeyapps.barcodescanner; - -import android.content.Context; -import android.content.Intent; -import android.util.AttributeSet; -import android.view.KeyEvent; -import android.widget.FrameLayout; -import android.widget.TextView; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.MultiFormatReader; -import com.google.zxing.ResultPoint; -import com.google.zxing.client.android.DecodeFormatManager; -import com.google.zxing.client.android.DecodeHintManager; -import com.google.zxing.client.android.Intents; -import com.google.zxing.client.android.R; -import com.journeyapps.barcodescanner.camera.CameraSettings; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * Encapsulates BarcodeView, ViewfinderView and status text. - */ -public class DefaultBarcodeScannerView extends FrameLayout { - private static final String TAG = DefaultBarcodeScannerView.class.getSimpleName(); - - private BarcodeView barcodeView; - private ViewfinderView viewFinder; - private TextView statusView; - - private class WrappedCallback implements BarcodeCallback { - private BarcodeCallback delegate; - - public WrappedCallback(BarcodeCallback delegate) { - this.delegate = delegate; - } - - @Override - public void barcodeResult(BarcodeResult result) { - delegate.barcodeResult(result); - } - - @Override - public void possibleResultPoints(List resultPoints) { - for (ResultPoint point : resultPoints) { - viewFinder.addPossibleResultPoint(point); - } - } - } - - public DefaultBarcodeScannerView(Context context) { - super(context); - initialize(); - } - - public DefaultBarcodeScannerView(Context context, AttributeSet attrs) { - super(context, attrs); - initialize(); - } - - public DefaultBarcodeScannerView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - initialize(); - } - - private void initialize() { - inflate(getContext(), R.layout.zxing_barcode_scanner, this); - - barcodeView = (BarcodeView) findViewById(R.id.zxing_barcode_surface); - - viewFinder = (ViewfinderView) findViewById(R.id.zxing_viewfinder_view); - viewFinder.setCameraPreview(barcodeView); - - statusView = (TextView) findViewById(R.id.zxing_status_view); - } - - /** - * Convenience method to initialize camera id, decode formats and prompt message from an intent. - * - * @param intent the intent, as generated by IntentIntegrator - */ - public void initializeFromIntent(Intent intent) { - // Scan the formats the intent requested, and return the result to the calling activity. - Set decodeFormats = DecodeFormatManager.parseDecodeFormats(intent); - Map decodeHints = DecodeHintManager.parseDecodeHints(intent); - - CameraSettings settings = new CameraSettings(); - - if (intent.hasExtra(Intents.Scan.CAMERA_ID)) { - int cameraId = intent.getIntExtra(Intents.Scan.CAMERA_ID, -1); - if (cameraId >= 0) { - settings.setRequestedCameraId(cameraId); - } - } - - String customPromptMessage = intent.getStringExtra(Intents.Scan.PROMPT_MESSAGE); - if (customPromptMessage != null) { - setStatusText(customPromptMessage); - } - - String characterSet = intent.getStringExtra(Intents.Scan.CHARACTER_SET); - - MultiFormatReader reader = new MultiFormatReader(); - reader.setHints(decodeHints); - - barcodeView.setCameraSettings(settings); - barcodeView.setDecoderFactory(new DefaultDecoderFactory(decodeFormats, decodeHints, characterSet)); - } - - public void setStatusText(String text) { - statusView.setText(text); - } - - public void pause() { - barcodeView.pause(); - } - - public void resume() { - barcodeView.resume(); - } - - public BarcodeView getBarcodeView() { - return (BarcodeView) findViewById(R.id.zxing_barcode_surface); - } - - public ViewfinderView getViewFinder() { - return viewFinder; - } - - public TextView getStatusView() { - return statusView; - } - - public void decodeSingle(BarcodeCallback callback) { - barcodeView.decodeSingle(new WrappedCallback(callback)); - - } - - public void decodeContinuous(BarcodeCallback callback) { - barcodeView.decodeContinuous(new WrappedCallback(callback)); - } - - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - switch (keyCode) { - case KeyEvent.KEYCODE_FOCUS: - case KeyEvent.KEYCODE_CAMERA: - // Handle these events so they don't launch the Camera app - return true; - // Use volume up/down to turn on light - case KeyEvent.KEYCODE_VOLUME_DOWN: - barcodeView.setTorch(false); - return true; - case KeyEvent.KEYCODE_VOLUME_UP: - barcodeView.setTorch(true); - return true; - } - return super.onKeyDown(keyCode, event); - } -} -- cgit v1.2.3 From 10b1b29f82c1572c0ee832768101d3473e578427 Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Sun, 3 May 2015 19:05:49 +0200 Subject: Add brief explanations on sample Activities. --- sample/src/main/java/example/zxing/AnyOrientationCaptureActivity.java | 3 ++- sample/src/main/java/example/zxing/ContinuousCaptureActivity.java | 3 ++- sample/src/main/java/example/zxing/ToolbarCaptureActivity.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'sample/src/main/java/example/zxing/ContinuousCaptureActivity.java') diff --git a/sample/src/main/java/example/zxing/AnyOrientationCaptureActivity.java b/sample/src/main/java/example/zxing/AnyOrientationCaptureActivity.java index fab32b0b..34393c51 100644 --- a/sample/src/main/java/example/zxing/AnyOrientationCaptureActivity.java +++ b/sample/src/main/java/example/zxing/AnyOrientationCaptureActivity.java @@ -3,7 +3,8 @@ package example.zxing; import com.journeyapps.barcodescanner.CaptureActivity; /** - * + * This Activity is exactly the same as CaptureActivity, but has a different orientation + * setting in AndroidManifest.xml. */ public class AnyOrientationCaptureActivity extends CaptureActivity { diff --git a/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java b/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java index 59e1c9a9..783eb892 100644 --- a/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java +++ b/sample/src/main/java/example/zxing/ContinuousCaptureActivity.java @@ -17,7 +17,8 @@ import com.journeyapps.barcodescanner.CompoundBarcodeView; import java.util.List; /** - * + * This sample performs continuous scanning, displaying the barcode and source image whenever + * a barcode is scanned. */ public class ContinuousCaptureActivity extends Activity { private static final String TAG = ContinuousCaptureActivity.class.getSimpleName(); diff --git a/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java b/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java index da9819cc..f497d117 100644 --- a/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java +++ b/sample/src/main/java/example/zxing/ToolbarCaptureActivity.java @@ -9,7 +9,7 @@ import com.journeyapps.barcodescanner.CaptureManager; import com.journeyapps.barcodescanner.CompoundBarcodeView; /** - * + * Sample Activity extending from ActionBarActivity to display a Toolbar. */ public class ToolbarCaptureActivity extends ActionBarActivity { private CaptureManager capture; -- cgit v1.2.3