Commit 38bd6038 by Oscar Fuentes

Fix plugin helper

parent 09d61c42
...@@ -6,12 +6,16 @@ import java.util.concurrent.Executors; ...@@ -6,12 +6,16 @@ import java.util.concurrent.Executors;
import com.rscja.deviceapi.Barcode2D; import com.rscja.deviceapi.Barcode2D;
import com.rscja.deviceapi.exception.ConfigurationException; import com.rscja.deviceapi.exception.ConfigurationException;
import com.rscja.utility.StringUtility; import com.rscja.utility.StringUtility;
import com.zebra.adc.decoder.Barcode2DWithSoft;
import org.apache.cordova.CordovaInterface; import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaWebView; import org.apache.cordova.CordovaWebView;
import org.apache.cordova.CallbackContext; import org.apache.cordova.CallbackContext;
import org.apache.cordova.PluginResult;
import org.json.JSONArray; import org.json.JSONArray;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
...@@ -24,24 +28,47 @@ public class PluginHelper { ...@@ -24,24 +28,47 @@ public class PluginHelper {
private static boolean threadStop = true; private static boolean threadStop = true;
private static String init_barcode; private static String init_barcode;
private static ExecutorService executor; private static ExecutorService executor;
private static Barcode2D mInstance; private static Barcode2DWithSoft mInstance;
private static Handler handler;
public static void scan(CordovaInterface cordova, CordovaWebView webView, JSONArray args, public static void scan(CordovaInterface cordova, CordovaWebView webView, JSONArray args,
final CallbackContext callbackContext) { final CallbackContext callbackContext) {
try { Context context = null;
mInstance = Barcode2D.getInstance();
} catch (ConfigurationException e) { try {
context = cordova.getActivity();
mInstance = Barcode2DWithSoft.getInstance();
} catch (Exception e) {
Log.e(TAG, e.getMessage()); Log.e(TAG, e.getMessage());
return; return;
} }
mInstance.setScanCallback(new Barcode2DWithSoft.ScanCallback() {
@Override
public void onScanComplete(int i, int length, byte[] data) {
Log.i(TAG, "onScanComplete() i=" + i);
if (length < 1) {
return;
}
String barCode = new String(data);
Log.i(TAG, barCode);
mInstance.stopScan();
mInstance.close();
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, barCode));
}
});
mInstance.open(context);
boolean bContinuous = false; boolean bContinuous = false;
Log.i("ErDActivity", "scan() "); Log.i("ErDActivity", "scan() ");
executor = Executors.newFixedThreadPool(6); executor = cordova.getThreadPool();
if (threadStop) { if (threadStop) {
...@@ -77,7 +104,7 @@ public class PluginHelper { ...@@ -77,7 +104,7 @@ public class PluginHelper {
public void run() { public void run() {
do { do {
barCode = mInstance.scan(); mInstance.scan();
Log.i("MY", "barCode " + barCode.trim()); Log.i("MY", "barCode " + barCode.trim());
...@@ -94,8 +121,6 @@ public class PluginHelper { ...@@ -94,8 +121,6 @@ public class PluginHelper {
msg.obj = barCode; msg.obj = barCode;
} }
handler.sendMessage(msg);
if (isContinuous) { if (isContinuous) {
try { try {
Thread.sleep(sleepTime); Thread.sleep(sleepTime);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment