- @Override
- public void run() {
- Looper.prepare();
- handler = new Handler() {
- @Override
- public void handleMessage(Message message) {
- switch (message.what) {
- case R.id.decode:
- captureAndDecode();
- break;
- case R.id.save:
- captureAndSave();
- break;
- case R.id.quit:
- Looper.myLooper().quit();
- break;
- case R.id.set_decode_all_mode:
- setDecodeAllMode();
- break;
- case R.id.set_decode_1D_mode:
- setDecode1DMode();
- break;
- case R.id.set_decode_QR_mode:
- setDecodeQRMode();
- break;
- case R.id.toggle_tracing:
- tracing = !tracing;
- break;
- }
- }
- };
- Looper.loop();
- }
-
- public void setCameraThreadHandler(Handler cameraThreadHandler) {
- this.cameraThreadHandler = cameraThreadHandler;
- }
-
- private void setDecodeAllMode() {
- hints = null;
- }
-
- // TODO: This is fragile in case we add new formats. It would be better to have a new enum
- // value which represented all 1D formats.
- private void setDecode1DMode() {
- hints = new Hashtable<DecodeHintType, Object>(3);
- Vector<BarcodeFormat> vector = new Vector<BarcodeFormat>();
- vector.addElement(BarcodeFormat.UPC_A);
- vector.addElement(BarcodeFormat.UPC_E);
- vector.addElement(BarcodeFormat.EAN_13);
- vector.addElement(BarcodeFormat.EAN_8);
- vector.addElement(BarcodeFormat.CODE_39);
- vector.addElement(BarcodeFormat.CODE_128);
- hints.put(DecodeHintType.POSSIBLE_FORMATS, vector);
- }