Search in sources :

Example 16 with PluginResult

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

the class InAppBrowser method sendUpdate.

/**
     * Create a new plugin result and send it back to JavaScript
     *
     * @param obj a JSONObject contain event payload information
     * @param status the status code to return to the JavaScript environment
     */
private void sendUpdate(JSONObject obj, boolean keepCallback, PluginResult.Status status) {
    PluginResult result = new PluginResult(status, obj);
    result.setKeepCallback(keepCallback);
    this.callbackContext.sendPluginResult(result);
}
Also used : PluginResult(org.apache.cordova.api.PluginResult)

Example 17 with PluginResult

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

the class NetworkManager 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 id used when calling back into JavaScript.
     * @return                  True if the action was valid, false otherwise.
     */
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
    if (action.equals("getConnectionInfo")) {
        this.connectionCallbackContext = callbackContext;
        NetworkInfo info = sockMan.getActiveNetworkInfo();
        PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, this.getConnectionInfo(info));
        pluginResult.setKeepCallback(true);
        callbackContext.sendPluginResult(pluginResult);
        return true;
    }
    return false;
}
Also used : PluginResult(org.apache.cordova.api.PluginResult) NetworkInfo(android.net.NetworkInfo)

Example 18 with PluginResult

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

the class Notification method confirm.

/**
     * Builds and shows a native Android confirm dialog with given title, message, buttons.
     * This dialog only shows up to 3 buttons.  Any labels after that will be ignored.
     * The index of the button pressed will be returned to the JavaScript callback identified by callbackId.
     *
     * @param message           The message the dialog should display
     * @param title             The title of the dialog
     * @param buttonLabels      A comma separated list of button labels (Up to 3 buttons)
     * @param callbackContext   The callback context.
     */
public synchronized void confirm(final String message, final String title, final JSONArray buttonLabels, final CallbackContext callbackContext) {
    final CordovaInterface cordova = this.cordova;
    Runnable runnable = new Runnable() {

        public void run() {
            AlertDialog.Builder dlg = new AlertDialog.Builder(cordova.getActivity());
            dlg.setMessage(message);
            dlg.setTitle(title);
            dlg.setCancelable(true);
            // First button
            if (buttonLabels.length() > 0) {
                try {
                    dlg.setNegativeButton(buttonLabels.getString(0), new AlertDialog.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, 1));
                        }
                    });
                } catch (JSONException e) {
                }
            }
            // Second button
            if (buttonLabels.length() > 1) {
                try {
                    dlg.setNeutralButton(buttonLabels.getString(1), new AlertDialog.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, 2));
                        }
                    });
                } catch (JSONException e) {
                }
            }
            // Third button
            if (buttonLabels.length() > 2) {
                try {
                    dlg.setPositiveButton(buttonLabels.getString(2), new AlertDialog.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, 3));
                        }
                    });
                } catch (JSONException e) {
                }
            }
            dlg.setOnCancelListener(new AlertDialog.OnCancelListener() {

                public void onCancel(DialogInterface dialog) {
                    dialog.dismiss();
                    callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, 0));
                }
            });
            dlg.create();
            dlg.show();
        }

        ;
    };
    this.cordova.getActivity().runOnUiThread(runnable);
}
Also used : AlertDialog(android.app.AlertDialog) CordovaInterface(org.apache.cordova.api.CordovaInterface) PluginResult(org.apache.cordova.api.PluginResult) DialogInterface(android.content.DialogInterface) JSONException(org.json.JSONException)

Example 19 with PluginResult

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

the class Notification method prompt.

/**
     * Builds and shows a native Android prompt dialog with given title, message, buttons.
     * This dialog only shows up to 3 buttons.  Any labels after that will be ignored.
     * The following results are returned to the JavaScript callback identified by callbackId:
     *     buttonIndex			Index number of the button selected
     *     input1				The text entered in the prompt dialog box
     *
     * @param message           The message the dialog should display
     * @param title             The title of the dialog
     * @param buttonLabels      A comma separated list of button labels (Up to 3 buttons)
     * @param callbackContext   The callback context.
     */
public synchronized void prompt(final String message, final String title, final JSONArray buttonLabels, final String defaultText, final CallbackContext callbackContext) {
    final CordovaInterface cordova = this.cordova;
    final EditText promptInput = new EditText(cordova.getActivity());
    promptInput.setHint(defaultText);
    Runnable runnable = new Runnable() {

        public void run() {
            AlertDialog.Builder dlg = new AlertDialog.Builder(cordova.getActivity());
            dlg.setMessage(message);
            dlg.setTitle(title);
            dlg.setCancelable(true);
            dlg.setView(promptInput);
            final JSONObject result = new JSONObject();
            // First button
            if (buttonLabels.length() > 0) {
                try {
                    dlg.setNegativeButton(buttonLabels.getString(0), new AlertDialog.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            try {
                                result.put("buttonIndex", 1);
                                result.put("input1", promptInput.getText().toString().trim().length() == 0 ? defaultText : promptInput.getText());
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                            callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result));
                        }
                    });
                } catch (JSONException e) {
                }
            }
            // Second button
            if (buttonLabels.length() > 1) {
                try {
                    dlg.setNeutralButton(buttonLabels.getString(1), new AlertDialog.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            try {
                                result.put("buttonIndex", 2);
                                result.put("input1", promptInput.getText().toString().trim().length() == 0 ? defaultText : promptInput.getText());
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                            callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result));
                        }
                    });
                } catch (JSONException e) {
                }
            }
            // Third button
            if (buttonLabels.length() > 2) {
                try {
                    dlg.setPositiveButton(buttonLabels.getString(2), new AlertDialog.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            try {
                                result.put("buttonIndex", 3);
                                result.put("input1", promptInput.getText().toString().trim().length() == 0 ? defaultText : promptInput.getText());
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                            callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result));
                        }
                    });
                } catch (JSONException e) {
                }
            }
            dlg.setOnCancelListener(new AlertDialog.OnCancelListener() {

                public void onCancel(DialogInterface dialog) {
                    dialog.dismiss();
                    try {
                        result.put("buttonIndex", 0);
                        result.put("input1", promptInput.getText().toString().trim().length() == 0 ? defaultText : promptInput.getText());
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result));
                }
            });
            dlg.create();
            dlg.show();
        }

        ;
    };
    this.cordova.getActivity().runOnUiThread(runnable);
}
Also used : EditText(android.widget.EditText) AlertDialog(android.app.AlertDialog) PluginResult(org.apache.cordova.api.PluginResult) DialogInterface(android.content.DialogInterface) JSONException(org.json.JSONException) CordovaInterface(org.apache.cordova.api.CordovaInterface) JSONObject(org.json.JSONObject)

Example 20 with PluginResult

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

the class ContactManager method execute.

/**
     * Executes the request and returns PluginResult.
     *
     * @param action            The action to execute.
     * @param args              JSONArray of arguments for the plugin.
     * @param callbackContext   The callback context used when calling back into JavaScript.
     * @return                  True if the action was valid, false otherwise.
     */
public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
    /**
         * Check to see if we are on an Android 1.X device.  If we are return an error as we
         * do not support this as of Cordova 1.0.
         */
    if (android.os.Build.VERSION.RELEASE.startsWith("1.")) {
        callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, ContactManager.NOT_SUPPORTED_ERROR));
        return true;
    }
    /**
         * Only create the contactAccessor after we check the Android version or the program will crash
         * older phones.
         */
    if (this.contactAccessor == null) {
        this.contactAccessor = new ContactAccessorSdk5(this.webView, this.cordova);
    }
    if (action.equals("search")) {
        final JSONArray filter = args.getJSONArray(0);
        final JSONObject options = args.getJSONObject(1);
        this.cordova.getThreadPool().execute(new Runnable() {

            public void run() {
                JSONArray res = contactAccessor.search(filter, options);
                callbackContext.success(res);
            }
        });
    } else if (action.equals("save")) {
        final JSONObject contact = args.getJSONObject(0);
        this.cordova.getThreadPool().execute(new Runnable() {

            public void run() {
                JSONObject res = null;
                String id = contactAccessor.save(contact);
                if (id != null) {
                    try {
                        res = contactAccessor.getContactById(id);
                    } catch (JSONException e) {
                        Log.e(LOG_TAG, "JSON fail.", e);
                    }
                }
                if (res != null) {
                    callbackContext.success(res);
                } else {
                    callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
                }
            }
        });
    } else if (action.equals("remove")) {
        final String contactId = args.getString(0);
        this.cordova.getThreadPool().execute(new Runnable() {

            public void run() {
                if (contactAccessor.remove(contactId)) {
                    callbackContext.success();
                } else {
                    callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
                }
            }
        });
    } else {
        return false;
    }
    return true;
}
Also used : PluginResult(org.apache.cordova.api.PluginResult) JSONObject(org.json.JSONObject) JSONArray(org.json.JSONArray) JSONException(org.json.JSONException)

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