Catch ActivityNotFoundException for QR Code Scan
Bug: 26293517
Change-Id: I6d67779bdef77729caab92c142135c5c2cebe013
diff --git a/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java b/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java
index 11411c0..9c678fe 100644
--- a/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java
+++ b/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java
@@ -17,10 +17,12 @@
package com.googlecode.android_scripting.facade;
import android.app.SearchManager;
+import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.provider.Contacts.People;
+import com.googlecode.android_scripting.Log;
import com.googlecode.android_scripting.jsonrpc.RpcReceiver;
import com.googlecode.android_scripting.rpc.Rpc;
import com.googlecode.android_scripting.rpc.RpcOptional;
@@ -57,8 +59,13 @@
@Rpc(description = "Starts the barcode scanner.", returns = "A Map representation of the result Intent.")
public Intent scanBarcode() throws JSONException {
- return mAndroidFacade.startActivityForResult("com.google.zxing.client.android.SCAN", null,
+ try {
+ return mAndroidFacade.startActivityForResult("com.google.zxing.client.android.SCAN", null,
null, null, null, null);
+ } catch (ActivityNotFoundException e) {
+ Log.e("No Activity found to scan a barcode!", e);
+ return null;
+ }
}
private void view(Uri uri, String type) {
diff --git a/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java b/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java
index 327280f..ac31317 100644
--- a/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java
+++ b/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java
@@ -19,6 +19,7 @@
import android.app.AlertDialog;
import android.app.ListActivity;
import android.app.SearchManager;
+import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -336,8 +337,12 @@
mQuery = EMPTY;
}
} else if (itemId == MenuId.QRCODE_ADD.getId()) {
- Intent intent = new Intent("com.google.zxing.client.android.SCAN");
- startActivityForResult(intent, RequestCode.QRCODE_ADD.ordinal());
+ try {
+ Intent intent = new Intent("com.google.zxing.client.android.SCAN");
+ startActivityForResult(intent, RequestCode.QRCODE_ADD.ordinal());
+ }catch(ActivityNotFoundException e) {
+ Log.e("No handler found to Scan a QR Code!", e);
+ }
} else if (itemId == MenuId.FOLDER_ADD.getId()) {
addFolder();
} else if (itemId == MenuId.PREFERENCES.getId()) {