diff --git a/src/android/ApiAiPlugin.java b/src/android/ApiAiPlugin.java index 52af718..5f6d244 100644 --- a/src/android/ApiAiPlugin.java +++ b/src/android/ApiAiPlugin.java @@ -97,30 +97,32 @@ public void run() { } else if (action.equals("requestText")) { JSONObject argObject = args.getJSONObject(0); - if (argObject != null) { - final RequestExtras requestExtras = new RequestExtras(); - String query = ""; + if (argObject == null) { + callbackContext.error("Arguments is empty"); + return true; + } - if (argObject.has("query")) { - query = argObject.getString("query"); - } - else { - callbackContext.error("Argument query must not be empty"); - } + if (!argObject.has("query")) { + callbackContext.error("Argument query must not be empty"); + return true; + } - fillContextsFromArg(argObject, requestExtras); - fillEntitiesFromArg(argObject, requestExtras); + final RequestExtras requestExtras = new RequestExtras(); + final String query = argObject.getString("query"); - if (argObject.has("resetContexts")) { - requestExtras.setResetContexts(argObject.getBoolean("resetContexts")); - } + fillContextsFromArg(argObject, requestExtras); + fillEntitiesFromArg(argObject, requestExtras); - this.textRequest(query, requestExtras, callbackContext); + if (argObject.has("resetContexts")) { + requestExtras.setResetContexts(argObject.getBoolean("resetContexts")); } - else{ - callbackContext.error("Arguments is empty"); - } - + + this.cordova.getThreadPool().execute(new Runnable() { + public void run() { + textRequest(query, requestExtras, callbackContext); + } + }); + return true; } else if (action.equals("requestVoice")) { @@ -136,10 +138,18 @@ public void run() { requestExtras.setResetContexts(argObject.getBoolean("resetContexts")); } - this.requestVoice(requestExtras, callbackContext); + this.cordova.getThreadPool().execute(new Runnable() { + public void run() { + requestVoice(requestExtras, callbackContext); + } + }); } else{ - this.requestVoice(null, callbackContext); + this.cordova.getThreadPool().execute(new Runnable() { + public void run() { + requestVoice(null, callbackContext); + } + }); } return true;