in cordova-plugin-echo/src/android/Echo.java [47:97]
public boolean execute(String action, final JSONArray args, final CallbackContext callbackContext) throws JSONException {
if (action.equals("echo")) {
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, args.getString(0)));
} else if(action.equals("echoAsync")) {
cordova.getThreadPool().execute(new Runnable() {
public void run() {
callbackContext.sendPluginResult( new PluginResult(PluginResult.Status.OK, args.optString(0)));
}
});
} else if(action.equals("echoArrayBuffer")) {
String data = args.optString(0);
byte[] rawData= Base64.decode(data, Base64.DEFAULT);
callbackContext.sendPluginResult( new PluginResult(PluginResult.Status.OK, rawData));
} else if(action.equals("echoArrayBufferAsync")) {
cordova.getThreadPool().execute(new Runnable() {
public void run() {
String data = args.optString(0);
byte[] rawData= Base64.decode(data, Base64.DEFAULT);
callbackContext.sendPluginResult( new PluginResult(PluginResult.Status.OK, rawData));
}
});
} else if(action.equals("echoMultiPart")) {
callbackContext.sendPluginResult( new PluginResult(PluginResult.Status.OK, args.getJSONObject(0)));
} else if(action.equals("stopEchoBulk")) {
bulkEchoing = false;
} else if(action.equals("echoBulk")) {
if (bulkEchoing) {
return true;
}
final String payload = args.getString(0);
final int delayMs = args.getInt(1);
bulkEchoing = true;
cordova.getThreadPool().execute(new Runnable() {
public void run() {
while (bulkEchoing) {
try {
Thread.sleep(delayMs);
} catch (InterruptedException e) {}
PluginResult pr = new PluginResult(PluginResult.Status.OK, payload);
pr.setKeepCallback(true);
callbackContext.sendPluginResult(pr);
}
PluginResult pr = new PluginResult(PluginResult.Status.OK, payload);
callbackContext.sendPluginResult(pr);
}
});
} else {
return false;
}
return true;
}