Search in sources :

Example 6 with PluginResult

use of org.apache.cordova.api.PluginResult in project cordova-android-chromeview by thedracle.

the class GeoBroker method fail.

/**
     * Location failed.  Send error back to JavaScript.
     * 
     * @param code			The error code
     * @param msg			The error message
     * @throws JSONException 
     */
public void fail(int code, String msg, CallbackContext callbackContext, boolean keepCallback) {
    JSONObject obj = new JSONObject();
    String backup = null;
    try {
        obj.put("code", code);
        obj.put("message", msg);
    } catch (JSONException e) {
        obj = null;
        backup = "{'code':" + code + ",'message':'" + msg.replaceAll("'", "\'") + "'}";
    }
    PluginResult result;
    if (obj != null) {
        result = new PluginResult(PluginResult.Status.ERROR, obj);
    } else {
        result = new PluginResult(PluginResult.Status.ERROR, backup);
    }
    result.setKeepCallback(keepCallback);
    callbackContext.sendPluginResult(result);
}
Also used : JSONObject(org.json.JSONObject) PluginResult(org.apache.cordova.api.PluginResult) JSONException(org.json.JSONException)

Example 7 with PluginResult

use of org.apache.cordova.api.PluginResult in project cordova-android-chromeview by thedracle.

the class CameraLauncher method execute.

//    public void setContext(CordovaInterface mCtx) {
//        super.setContext(mCtx);
//        if (CordovaInterface.class.isInstance(mCtx))
//            cordova = (CordovaInterface) mCtx;
//        else
//            LOG.d(LOG_TAG, "ERROR: You must use the CordovaInterface for this to work correctly. Please implement it in your activity");
//    }
/**
     * Executes the request and returns PluginResult.
     *
     * @param action        	The action to execute.
     * @param args          	JSONArry of arguments for the plugin.
     * @param callbackContext   The callback id used when calling back into JavaScript.
     * @return              	A PluginResult object with a status and message.
     */
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    this.callbackContext = callbackContext;
    if (action.equals("takePicture")) {
        int srcType = CAMERA;
        int destType = FILE_URI;
        this.saveToPhotoAlbum = false;
        this.targetHeight = 0;
        this.targetWidth = 0;
        this.encodingType = JPEG;
        this.mediaType = PICTURE;
        this.mQuality = 80;
        this.mQuality = args.getInt(0);
        destType = args.getInt(1);
        srcType = args.getInt(2);
        this.targetWidth = args.getInt(3);
        this.targetHeight = args.getInt(4);
        this.encodingType = args.getInt(5);
        this.mediaType = args.getInt(6);
        //this.allowEdit = args.getBoolean(7); // This field is unused.
        this.correctOrientation = args.getBoolean(8);
        this.saveToPhotoAlbum = args.getBoolean(9);
        // make it -1 so later comparisons succeed
        if (this.targetWidth < 1) {
            this.targetWidth = -1;
        }
        if (this.targetHeight < 1) {
            this.targetHeight = -1;
        }
        if (srcType == CAMERA) {
            this.takePicture(destType, encodingType);
        } else if ((srcType == PHOTOLIBRARY) || (srcType == SAVEDPHOTOALBUM)) {
            this.getImage(srcType, destType);
        }
        PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT);
        r.setKeepCallback(true);
        callbackContext.sendPluginResult(r);
        return true;
    }
    return false;
}
Also used : PluginResult(org.apache.cordova.api.PluginResult)

Example 8 with PluginResult

use of org.apache.cordova.api.PluginResult in project cordova-android-chromeview by thedracle.

the class AccelListener method execute.

/**
     * Executes the request.
     *
     * @param action        The action to execute.
     * @param args          The exec() arguments.
     * @param callbackId    The callback id used when calling back into JavaScript.
     * @return              Whether the action was valid.
     */
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
    if (action.equals("start")) {
        this.callbackContext = callbackContext;
        if (this.status != AccelListener.RUNNING) {
            // If not running, then this is an async call, so don't worry about waiting
            // We drop the callback onto our stack, call start, and let start and the sensor callback fire off the callback down the road
            this.start();
        }
    } else if (action.equals("stop")) {
        if (this.status == AccelListener.RUNNING) {
            this.stop();
        }
    } else {
        // Unsupported action
        return false;
    }
    PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT, "");
    result.setKeepCallback(true);
    callbackContext.sendPluginResult(result);
    return true;
}
Also used : PluginResult(org.apache.cordova.api.PluginResult)

Example 9 with PluginResult

use of org.apache.cordova.api.PluginResult in project cordova-android-chromeview by thedracle.

the class App method execute.

/**
     * Executes the request and returns PluginResult.
     *
     * @param action            The action to execute.
     * @param args              JSONArry of arguments for the plugin.
     * @param callbackContext   The callback context from which we were invoked.
     * @return                  A PluginResult object with a status and message.
     */
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    PluginResult.Status status = PluginResult.Status.OK;
    String result = "";
    try {
        if (action.equals("clearCache")) {
            this.clearCache();
        } else if (action.equals("show")) {
            // This gets called from JavaScript onCordovaReady to show the webview.
            // I recommend we change the name of the Message as spinner/stop is not
            // indicative of what this actually does (shows the webview).
            cordova.getActivity().runOnUiThread(new Runnable() {

                public void run() {
                    webView.postMessage("spinner", "stop");
                }
            });
        } else if (action.equals("loadUrl")) {
            this.loadUrl(args.getString(0), args.optJSONObject(1));
        } else if (action.equals("cancelLoadUrl")) {
        //this.cancelLoadUrl();
        } else if (action.equals("clearHistory")) {
            this.clearHistory();
        } else if (action.equals("backHistory")) {
            this.backHistory();
        } else if (action.equals("overrideButton")) {
            this.overrideButton(args.getString(0), args.getBoolean(1));
        } else if (action.equals("overrideBackbutton")) {
            this.overrideBackbutton(args.getBoolean(0));
        } else if (action.equals("exitApp")) {
            this.exitApp();
        }
        callbackContext.sendPluginResult(new PluginResult(status, result));
        return true;
    } catch (JSONException e) {
        callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
        return false;
    }
}
Also used : PluginResult(org.apache.cordova.api.PluginResult) JSONException(org.json.JSONException)

Example 10 with PluginResult

use of org.apache.cordova.api.PluginResult in project cordova-android-chromeview by thedracle.

the class FileUtils method readFileAs.

//--------------------------------------------------------------------------
// LOCAL METHODS
//--------------------------------------------------------------------------
/**
     * Read the contents of a file.
     * This is done in a background thread; the result is sent to the callback.
     *
     * @param filename          The name of the file.
     * @param start             Start position in the file.
     * @param end               End position to stop at (exclusive).
     * @param callbackContext   The context through which to send the result.
     * @param encoding          The encoding to return contents as.  Typical value is UTF-8. (see http://www.iana.org/assignments/character-sets)
     * @param resultType        The desired type of data to send to the callback.
     * @return                  Contents of file.
     */
public void readFileAs(final String filename, final int start, final int end, final CallbackContext callbackContext, final String encoding, final int resultType) {
    this.cordova.getThreadPool().execute(new Runnable() {

        public void run() {
            try {
                byte[] bytes = readAsBinaryHelper(filename, start, end);
                PluginResult result;
                switch(resultType) {
                    case PluginResult.MESSAGE_TYPE_STRING:
                        result = new PluginResult(PluginResult.Status.OK, new String(bytes, encoding));
                        break;
                    case PluginResult.MESSAGE_TYPE_ARRAYBUFFER:
                        result = new PluginResult(PluginResult.Status.OK, bytes);
                        break;
                    case PluginResult.MESSAGE_TYPE_BINARYSTRING:
                        result = new PluginResult(PluginResult.Status.OK, bytes, true);
                        break;
                    default:
                        // Base64.
                        String contentType = FileHelper.getMimeType(filename, cordova);
                        byte[] base64 = Base64.encode(bytes, Base64.DEFAULT);
                        String s = "data:" + contentType + ";base64," + new String(base64, "US-ASCII");
                        result = new PluginResult(PluginResult.Status.OK, s);
                }
                callbackContext.sendPluginResult(result);
            } catch (FileNotFoundException e) {
                callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.IO_EXCEPTION, NOT_FOUND_ERR));
            } catch (IOException e) {
                Log.d(LOG_TAG, e.getLocalizedMessage());
                callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.IO_EXCEPTION, NOT_READABLE_ERR));
            }
        }
    });
}
Also used : PluginResult(org.apache.cordova.api.PluginResult) FileNotFoundException(java.io.FileNotFoundException) IOException(java.io.IOException)

Aggregations

PluginResult (org.apache.cordova.api.PluginResult)27 JSONException (org.json.JSONException)10 JSONObject (org.json.JSONObject)9 IOException (java.io.IOException)5 FileNotFoundException (java.io.FileNotFoundException)4 AlertDialog (android.app.AlertDialog)3 DialogInterface (android.content.DialogInterface)3 MalformedURLException (java.net.MalformedURLException)3 CordovaInterface (org.apache.cordova.api.CordovaInterface)3 Intent (android.content.Intent)2 File (java.io.File)2 FileInputStream (java.io.FileInputStream)2 FileOutputStream (java.io.FileOutputStream)2 OutputStream (java.io.OutputStream)2 HttpURLConnection (java.net.HttpURLConnection)2 URL (java.net.URL)2 HostnameVerifier (javax.net.ssl.HostnameVerifier)2 HttpsURLConnection (javax.net.ssl.HttpsURLConnection)2 SSLSocketFactory (javax.net.ssl.SSLSocketFactory)2 JSONArray (org.json.JSONArray)2