diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml
index 6e1292015..63f587159 100755
--- a/android/res/values/strings.xml
+++ b/android/res/values/strings.xml
@@ -21,6 +21,7 @@
Cancel
Dial
Email
+ Look up book
Look up product
OK
Open browser
diff --git a/android/src/com/android/barcodes/BarcodesCaptureActivity.java b/android/src/com/android/barcodes/BarcodesCaptureActivity.java
index 4d9a9bc1c..dd83dc452 100755
--- a/android/src/com/android/barcodes/BarcodesCaptureActivity.java
+++ b/android/src/com/android/barcodes/BarcodesCaptureActivity.java
@@ -22,6 +22,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.AssetFileDescriptor;
+import android.content.res.Configuration;
import android.media.MediaPlayer;
import android.media.AudioManager;
import android.media.MediaPlayer.OnCompletionListener;
@@ -169,6 +170,12 @@ public final class BarcodesCaptureActivity extends Activity implements SurfaceHo
return super.onOptionsItemSelected(item);
}
+ @Override
+ public void onConfigurationChanged(Configuration config) {
+ // Do nothing, this is to prevent the activity from being restarted when the keyboard opens.
+ super.onConfigurationChanged(config);
+ }
+
private final DialogInterface.OnClickListener mAboutListener = new DialogInterface.OnClickListener() {
public void onClick(android.content.DialogInterface dialogInterface, int i) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.zxing_url)));
diff --git a/android/src/com/android/barcodes/QRCodeEncoder.java b/android/src/com/android/barcodes/QRCodeEncoder.java
index 570ad6da2..27c12e6c0 100755
--- a/android/src/com/android/barcodes/QRCodeEncoder.java
+++ b/android/src/com/android/barcodes/QRCodeEncoder.java
@@ -35,6 +35,7 @@ import java.net.URI;
public class QRCodeEncoder {
private static final String TAG = "QRCodeEncoder";
+ private static final String CHART_SERVER_URL = "//chart.apis.google.com/chart?cht=qr&chs=";
private Activity mActivity;
private String mContents;
@@ -151,12 +152,12 @@ public class QRCodeEncoder {
}
public void run() {
- String url = "//chartserver.apis.google.com/chart?cht=qr&chs=";
- url += mPixelResolution + "x" + mPixelResolution + "&chl=" + mContents;
+ String url = CHART_SERVER_URL + mPixelResolution + "x" + mPixelResolution + "&chl=" +
+ mContents;
try {
URI uri = new URI("http", url, null);
HttpGet get = new HttpGet(uri);
- AndroidHttpClient client = AndroidHttpClient.newInstance("Android-BarcodeScanner/0.1");
+ AndroidHttpClient client = AndroidHttpClient.newInstance("Android-Barcodes/0.1");
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
Bitmap image = BitmapFactory.decodeStream(entity.getContent());
diff --git a/android/src/com/android/barcodes/ResultHandler.java b/android/src/com/android/barcodes/ResultHandler.java
index 894547240..ddaa00335 100755
--- a/android/src/com/android/barcodes/ResultHandler.java
+++ b/android/src/com/android/barcodes/ResultHandler.java
@@ -25,6 +25,7 @@ import com.google.zxing.Result;
import com.google.zxing.client.result.AddressBookParsedResult;
import com.google.zxing.client.result.EmailAddressParsedResult;
import com.google.zxing.client.result.GeoParsedResult;
+import com.google.zxing.client.result.ISBNParsedResult;
import com.google.zxing.client.result.ParsedResult;
import com.google.zxing.client.result.ParsedResultType;
import com.google.zxing.client.result.ResultParser;
@@ -90,6 +91,8 @@ final class ResultHandler implements Button.OnClickListener {
buttonText = R.string.button_dial;
} else if (type.equals(ParsedResultType.GEO)) {
buttonText = R.string.button_show_map;
+ } else if (type.equals(ParsedResultType.ISBN)) {
+ buttonText = R.string.button_lookup_book;
} else {
buttonText = 0;
}
@@ -127,10 +130,12 @@ final class ResultHandler implements Button.OnClickListener {
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoResult.getGeoURI()));
} else if (type.equals(ParsedResultType.UPC)) {
UPCParsedResult upcResult = (UPCParsedResult) result;
- // TODO: Add some UI to choose which product search to do
- //Uri uri = Uri.parse("http://www.upcdatabase.com/item.asp?upc=" + upcResult.getUPC());
Uri uri = Uri.parse("http://www.google.com/products?q=" + upcResult.getUPC());
intent = new Intent(Intent.ACTION_VIEW, uri);
+ } else if (type.equals(ParsedResultType.ISBN)) {
+ ISBNParsedResult isbnResult = (ISBNParsedResult) result;
+ Uri uri = Uri.parse("http://www.google.com/products?q=" + isbnResult.getISBN());
+ intent = new Intent(Intent.ACTION_VIEW, uri);
} else if (type.equals(ParsedResultType.URI)) {
URIParsedResult uriResult = (URIParsedResult) result;
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uriResult.getURI()));