Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* by naf */
- package org.clipboardplugin;
- import org.json.JSONArray;
- import org.json.JSONException;
- import android.content.ClipData;
- import android.content.Context;
- import android.content.ClipboardManager;
- import com.phonegap.api.Plugin;
- import com.phonegap.api.PluginResult;
- public class ClipboardManagerPlugin extends Plugin {
- private static final String actionCopy = "copy";
- private static final String actionPaste = "paste";
- private static final String errorParse = "Couldn't get the text to copy";
- private static final String errorUnknown = "Unknown Error";
- private ClipboardManager clipboard;
- /**
- * Executes the request and returns PluginResult.
- *
- * @param action
- * The action to execute.
- * @param args
- * JSONArry of arguments for the plugin.
- * @param callbackId
- * The callback id used when calling back into JavaScript.
- * @return A PluginResult object with a status and message.
- */
- public PluginResult execute(String action, JSONArray args, String callbackId) {
- // If we do not have the clipboard
- if(clipboard == null)
- clipboard = (ClipboardManager) ((Context) ctx).getSystemService(Context.CLIPBOARD_SERVICE);
- // Copy
- if (action.equals(actionCopy)) {
- String arg = "";
- try {
- arg = (String) args.get(0);
- ClipData clip = ClipData.newPlainText("label", arg);
- clipboard.setPrimaryClip(clip);
- } catch (JSONException e) {
- return new PluginResult(PluginResult.Status.ERROR, errorParse);
- } catch (Exception e) {
- return new PluginResult(PluginResult.Status.ERROR, errorUnknown);
- }
- return new PluginResult(PluginResult.Status.OK, arg);
- // Paste
- } else if (action.equals(actionPaste)) {
- ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
- String arg = (String) item.getText();
- if (arg == null) {
- arg = "";
- }
- return new PluginResult(PluginResult.Status.OK, arg);
- } else {
- return new PluginResult(PluginResult.Status.INVALID_ACTION);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement