summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Defogger/Makefile1
-rwxr-xr-xDefogger/src/com/google/zxing/client/android/Intents.java303
-rw-r--r--Defogger/src/no/mork/android/defogger/ConfigureNetworkActivity.java2
-rw-r--r--Defogger/src/no/mork/android/defogger/MainActivity.java4
4 files changed, 309 insertions, 1 deletions
diff --git a/Defogger/Makefile b/Defogger/Makefile
index 4467cc7..37070fc 100644
--- a/Defogger/Makefile
+++ b/Defogger/Makefile
@@ -22,6 +22,7 @@ RES=$(addprefix res/,$(RESOURCES))
#CLASSES=obj/no/mork/android/defogger/R.class $(patsubst src/%.java,obj/%.class,$(wildcard src/no/mork/android/defogger/util/*.java) $(wildcard src/no/mork/android/defogger/*.java))
CLASSES=obj/no/mork/android/defogger/R.class $(patsubst src/%.java,obj/%.class,\
$(wildcard src/no/mork/android/defogger/*.java) \
+ $(wildcard src/com/google/zxing/client/android/*.java) \
$(wildcard src/com/google/zxing/integration/android/*.java))
all: defogger.apk
diff --git a/Defogger/src/com/google/zxing/client/android/Intents.java b/Defogger/src/com/google/zxing/client/android/Intents.java
new file mode 100755
index 0000000..c11963c
--- /dev/null
+++ b/Defogger/src/com/google/zxing/client/android/Intents.java
@@ -0,0 +1,303 @@
+/*
+ * Copyright (C) 2008 ZXing authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.zxing.client.android;
+
+import android.content.Intent;
+
+/**
+ * This class provides the constants to use when sending an Intent to Barcode Scanner.
+ * These strings are effectively API and cannot be changed.
+ *
+ * @author dswitkin@google.com (Daniel Switkin)
+ */
+public final class Intents {
+ private Intents() {
+ }
+
+ /**
+ * Constants related to the {@link Scan#ACTION} Intent.
+ */
+ public static final class Scan {
+ /**
+ * Send this intent to open the Barcodes app in scanning mode, find a barcode, and return
+ * the results.
+ */
+ public static final String ACTION = "com.google.zxing.client.android.SCAN";
+
+ /**
+ * By default, sending this will decode all barcodes that we understand. However it
+ * may be useful to limit scanning to certain formats. Use
+ * {@link android.content.Intent#putExtra(String, String)} with one of the values below.
+ *
+ * Setting this is effectively shorthand for setting explicit formats with {@link #FORMATS}.
+ * It is overridden by that setting.
+ */
+ public static final String MODE = "SCAN_MODE";
+
+ /**
+ * Decode only UPC and EAN barcodes. This is the right choice for shopping apps which get
+ * prices, reviews, etc. for products.
+ */
+ public static final String PRODUCT_MODE = "PRODUCT_MODE";
+
+ /**
+ * Decode only 1D barcodes.
+ */
+ public static final String ONE_D_MODE = "ONE_D_MODE";
+
+ /**
+ * Decode only QR codes.
+ */
+ public static final String QR_CODE_MODE = "QR_CODE_MODE";
+
+ /**
+ * Decode only Data Matrix codes.
+ */
+ public static final String DATA_MATRIX_MODE = "DATA_MATRIX_MODE";
+
+ /**
+ * Decode only Aztec.
+ */
+ public static final String AZTEC_MODE = "AZTEC_MODE";
+
+ /**
+ * Decode only PDF417.
+ */
+ public static final String PDF417_MODE = "PDF417_MODE";
+
+ /**
+ * Comma-separated list of formats to scan for. The values must match the names of
+ * {@link com.google.zxing.BarcodeFormat}s, e.g. {@link com.google.zxing.BarcodeFormat#EAN_13}.
+ * Example: "EAN_13,EAN_8,QR_CODE". This overrides {@link #MODE}.
+ */
+ public static final String FORMATS = "SCAN_FORMATS";
+
+ /**
+ * Optional parameter to specify the id of the camera from which to recognize barcodes.
+ * Overrides the default camera that would otherwise would have been selected.
+ * If provided, should be an int.
+ */
+ public static final String CAMERA_ID = "SCAN_CAMERA_ID";
+
+ /**
+ * @see com.google.zxing.DecodeHintType#CHARACTER_SET
+ */
+ public static final String CHARACTER_SET = "CHARACTER_SET";
+
+ /**
+ * Optional parameters to specify the width and height of the scanning rectangle in pixels.
+ * The app will try to honor these, but will clamp them to the size of the preview frame.
+ * You should specify both or neither, and pass the size as an int.
+ */
+ public static final String WIDTH = "SCAN_WIDTH";
+ public static final String HEIGHT = "SCAN_HEIGHT";
+
+ /**
+ * Desired duration in milliseconds for which to pause after a successful scan before
+ * returning to the calling intent. Specified as a long, not an integer!
+ * For example: 1000L, not 1000.
+ */
+ public static final String RESULT_DISPLAY_DURATION_MS = "RESULT_DISPLAY_DURATION_MS";
+
+ /**
+ * Prompt to show on-screen when scanning by intent. Specified as a {@link String}.
+ */
+ public static final String PROMPT_MESSAGE = "PROMPT_MESSAGE";
+
+ /**
+ * If a barcode is found, Barcodes returns {@link android.app.Activity#RESULT_OK} to
+ * {@link android.app.Activity#onActivityResult(int, int, android.content.Intent)}
+ * of the app which requested the scan via
+ * {@link android.app.Activity#startActivityForResult(android.content.Intent, int)}
+ * The barcodes contents can be retrieved with
+ * {@link android.content.Intent#getStringExtra(String)}.
+ * If the user presses Back, the result code will be {@link android.app.Activity#RESULT_CANCELED}.
+ */
+ public static final String RESULT = "SCAN_RESULT";
+
+ /**
+ * Call {@link android.content.Intent#getStringExtra(String)} with {@code RESULT_FORMAT}
+ * to determine which barcode format was found.
+ * See {@link com.google.zxing.BarcodeFormat} for possible values.
+ */
+ public static final String RESULT_FORMAT = "SCAN_RESULT_FORMAT";
+
+ /**
+ * Call {@link android.content.Intent#getStringExtra(String)} with {@code RESULT_UPC_EAN_EXTENSION}
+ * to return the content of any UPC extension barcode that was also found. Only applicable
+ * to {@link com.google.zxing.BarcodeFormat#UPC_A} and {@link com.google.zxing.BarcodeFormat#EAN_13}
+ * formats.
+ */
+ public static final String RESULT_UPC_EAN_EXTENSION = "SCAN_RESULT_UPC_EAN_EXTENSION";
+
+ /**
+ * Call {@link android.content.Intent#getByteArrayExtra(String)} with {@code RESULT_BYTES}
+ * to get a {@code byte[]} of raw bytes in the barcode, if available.
+ */
+ public static final String RESULT_BYTES = "SCAN_RESULT_BYTES";
+
+ /**
+ * Key for the value of {@link com.google.zxing.ResultMetadataType#ORIENTATION}, if available.
+ * Call {@link android.content.Intent#getIntArrayExtra(String)} with {@code RESULT_ORIENTATION}.
+ */
+ public static final String RESULT_ORIENTATION = "SCAN_RESULT_ORIENTATION";
+
+ /**
+ * Key for the value of {@link com.google.zxing.ResultMetadataType#ERROR_CORRECTION_LEVEL}, if available.
+ * Call {@link android.content.Intent#getStringExtra(String)} with {@code RESULT_ERROR_CORRECTION_LEVEL}.
+ */
+ public static final String RESULT_ERROR_CORRECTION_LEVEL = "SCAN_RESULT_ERROR_CORRECTION_LEVEL";
+
+ /**
+ * Prefix for keys that map to the values of {@link com.google.zxing.ResultMetadataType#BYTE_SEGMENTS},
+ * if available. The actual values will be set under a series of keys formed by adding 0, 1, 2, ...
+ * to this prefix. So the first byte segment is under key "SCAN_RESULT_BYTE_SEGMENTS_0" for example.
+ * Call {@link android.content.Intent#getByteArrayExtra(String)} with these keys.
+ */
+ public static final String RESULT_BYTE_SEGMENTS_PREFIX = "SCAN_RESULT_BYTE_SEGMENTS_";
+
+ /**
+ * Setting this to false will not save scanned codes in the history. Specified as a {@code boolean}.
+ */
+ public static final String SAVE_HISTORY = "SAVE_HISTORY";
+
+ private Scan() {
+ }
+ }
+
+ /**
+ * Constants related to the scan history and retrieving history items.
+ */
+ public static final class History {
+
+ public static final String ITEM_NUMBER = "ITEM_NUMBER";
+
+ private History() {
+ }
+ }
+
+ /**
+ * Constants related to the {@link Encode#ACTION} Intent.
+ */
+ public static final class Encode {
+ /**
+ * Send this intent to encode a piece of data as a QR code and display it full screen, so
+ * that another person can scan the barcode from your screen.
+ */
+ public static final String ACTION = "com.google.zxing.client.android.ENCODE";
+
+ /**
+ * The data to encode. Use {@link android.content.Intent#putExtra(String, String)} or
+ * {@link android.content.Intent#putExtra(String, android.os.Bundle)},
+ * depending on the type and format specified. Non-QR Code formats should
+ * just use a String here. For QR Code, see Contents for details.
+ */
+ public static final String DATA = "ENCODE_DATA";
+
+ /**
+ * The type of data being supplied if the format is QR Code. Use
+ * {@link android.content.Intent#putExtra(String, String)} with one of {@link Contents.Type}.
+ */
+ public static final String TYPE = "ENCODE_TYPE";
+
+ /**
+ * The barcode format to be displayed. If this isn't specified or is blank,
+ * it defaults to QR Code. Use {@link android.content.Intent#putExtra(String, String)}, where
+ * format is one of {@link com.google.zxing.BarcodeFormat}.
+ */
+ public static final String FORMAT = "ENCODE_FORMAT";
+
+ /**
+ * Normally the contents of the barcode are displayed to the user in a TextView. Setting this
+ * boolean to false will hide that TextView, showing only the encode barcode.
+ */
+ public static final String SHOW_CONTENTS = "ENCODE_SHOW_CONTENTS";
+
+ private Encode() {
+ }
+ }
+
+ /**
+ * Constants related to the {@link SearchBookContents#ACTION} Intent.
+ */
+ public static final class SearchBookContents {
+ /**
+ * Use Google Book Search to search the contents of the book provided.
+ */
+ public static final String ACTION = "com.google.zxing.client.android.SEARCH_BOOK_CONTENTS";
+
+ /**
+ * The book to search, identified by ISBN number.
+ */
+ public static final String ISBN = "ISBN";
+
+ /**
+ * An optional field which is the text to search for.
+ */
+ public static final String QUERY = "QUERY";
+
+ private SearchBookContents() {
+ }
+ }
+
+ /**
+ * Constants related to the {@link WifiConnect#ACTION} Intent.
+ */
+ public static final class WifiConnect {
+ /**
+ * Internal intent used to trigger connection to a wi-fi network.
+ */
+ public static final String ACTION = "com.google.zxing.client.android.WIFI_CONNECT";
+
+ /**
+ * The network to connect to, all the configuration provided here.
+ */
+ public static final String SSID = "SSID";
+
+ /**
+ * The network to connect to, all the configuration provided here.
+ */
+ public static final String TYPE = "TYPE";
+
+ /**
+ * The network to connect to, all the configuration provided here.
+ */
+ public static final String PASSWORD = "PASSWORD";
+
+ private WifiConnect() {
+ }
+ }
+
+ /**
+ * Constants related to the {@link Share#ACTION} Intent.
+ */
+ public static final class Share {
+ /**
+ * Give the user a choice of items to encode as a barcode, then render it as a QR Code and
+ * display onscreen for a friend to scan with their phone.
+ */
+ public static final String ACTION = "com.google.zxing.client.android.SHARE";
+
+ private Share() {
+ }
+ }
+
+ // Not the best place for this, but, better than a new class
+ // Should be FLAG_ACTIVITY_NEW_DOCUMENT in API 21+.
+ // Defined once here because the current value is deprecated, so generates just one warning
+ public static final int FLAG_NEW_DOC = Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET;
+}
diff --git a/Defogger/src/no/mork/android/defogger/ConfigureNetworkActivity.java b/Defogger/src/no/mork/android/defogger/ConfigureNetworkActivity.java
index 38a8fec..d1803c4 100644
--- a/Defogger/src/no/mork/android/defogger/ConfigureNetworkActivity.java
+++ b/Defogger/src/no/mork/android/defogger/ConfigureNetworkActivity.java
@@ -105,6 +105,8 @@ public class ConfigureNetworkActivity extends Activity {
edit = (EditText) findViewById(R.id.ssid);
String ssid = kv.containsKey("I") ? kv.get("I") : edit.getText().toString();
+ Log.d(msg, "kv is " + kv);
+
/* returning empty ssid is not allowed */
if (ssid == null || ssid.length() == 0)
returnConfigResult(null);
diff --git a/Defogger/src/no/mork/android/defogger/MainActivity.java b/Defogger/src/no/mork/android/defogger/MainActivity.java
index 0aa6379..a95e741 100644
--- a/Defogger/src/no/mork/android/defogger/MainActivity.java
+++ b/Defogger/src/no/mork/android/defogger/MainActivity.java
@@ -17,6 +17,7 @@ import android.util.Log;
import android.view.View;
import android.widget.TextView;
+import com.google.zxing.client.android.Intents;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
@@ -131,7 +132,8 @@ public class MainActivity extends Activity {
public void startQRReaderActivity(View view) {
IntentIntegrator integrator = new IntentIntegrator(this);
- integrator.setTitleByID(R.values.qrtitle);
+ integrator.setTitleByID(R.string.qrtitle);
+ integrator.addExtra(Intents.Scan.SAVE_HISTORY, false); // prevent scan result from showing up in input history...
integrator.initiateScan(IntentIntegrator.QR_CODE_TYPES);
}