Advertisement
Guest User

Untitled

a guest
Jul 8th, 2012
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. /* by naf */
  2. package org.clipboardplugin;
  3.  
  4. import org.json.JSONArray;
  5. import org.json.JSONException;
  6.  
  7. import android.content.ClipData;
  8. import android.content.Context;
  9. import android.content.ClipboardManager;
  10.  
  11. import com.phonegap.api.Plugin;
  12. import com.phonegap.api.PluginResult;
  13.  
  14. public class ClipboardManagerPlugin extends Plugin {
  15.     private static final String actionCopy = "copy";
  16.     private static final String actionPaste = "paste";
  17.     private static final String errorParse = "Couldn't get the text to copy";
  18.     private static final String errorUnknown = "Unknown Error";
  19.  
  20.     private ClipboardManager clipboard;
  21.  
  22.     /**
  23.      * Executes the request and returns PluginResult.
  24.      *
  25.      * @param action
  26.      *            The action to execute.
  27.      * @param args
  28.      *            JSONArry of arguments for the plugin.
  29.      * @param callbackId
  30.      *            The callback id used when calling back into JavaScript.
  31.      * @return A PluginResult object with a status and message.
  32.      */
  33.     public PluginResult execute(String action, JSONArray args, String callbackId) {
  34.         // If we do not have the clipboard
  35.         if(clipboard == null)
  36.             clipboard = (ClipboardManager) ((Context) ctx).getSystemService(Context.CLIPBOARD_SERVICE);
  37.        
  38.         // Copy
  39.         if (action.equals(actionCopy)) {
  40.             String arg = "";
  41.             try {
  42.                 arg = (String) args.get(0);
  43.                 ClipData clip = ClipData.newPlainText("label", arg);
  44.                 clipboard.setPrimaryClip(clip);
  45.             } catch (JSONException e) {
  46.                 return new PluginResult(PluginResult.Status.ERROR, errorParse);
  47.             } catch (Exception e) {
  48.                 return new PluginResult(PluginResult.Status.ERROR, errorUnknown);
  49.             }
  50.             return new PluginResult(PluginResult.Status.OK, arg);
  51.            
  52.         // Paste
  53.         } else if (action.equals(actionPaste)) {
  54.             ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
  55.             String arg = (String) item.getText();
  56.             if (arg == null) {
  57.                 arg = "";
  58.             }
  59.             return new PluginResult(PluginResult.Status.OK, arg);
  60.         } else {
  61.             return new PluginResult(PluginResult.Status.INVALID_ACTION);
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement