15 if (VERSION.SDK_INT < VERSION_CODES.HONEYCOMB)
16 return new PreHCClipboardManager(ctx);
18 return new HCClipboardManager(ctx);
21 public abstract void setClipboardData(String data);
27 public abstract void getPrimaryClipManually();
31 void onClipboardChanged(String data);
37 public PreHCClipboardManager(Context ctx)
41 @Override
public void setClipboardData(String data)
45 @Override
public void addClipboardChangedListener(OnClipboardChangedListener listener)
50 public void removeClipboardboardChangedListener(OnClipboardChangedListener listener)
54 @Override
public void getPrimaryClipManually()
60 private static class HCClipboardManager
61 extends ClipboardManagerProxy implements ClipboardManager.OnPrimaryClipChangedListener
63 private final ClipboardManager mClipboardManager;
64 private OnClipboardChangedListener mListener;
66 public HCClipboardManager(Context ctx)
68 mClipboardManager = (ClipboardManager)ctx.getSystemService(Context.CLIPBOARD_SERVICE);
71 @Override
public void setClipboardData(String data)
73 mClipboardManager.setPrimaryClip(
74 ClipData.newPlainText(
"rdp-clipboard", data ==
null ?
"" : data));
77 @Override
public void onPrimaryClipChanged()
79 ClipData clip = mClipboardManager.getPrimaryClip();
82 if (clip !=
null && clip.getItemCount() > 0)
84 CharSequence cs = clip.getItemAt(0).getText();
88 if (mListener !=
null)
90 mListener.onClipboardChanged(data);
94 @Override
public void addClipboardChangedListener(OnClipboardChangedListener listener)
97 mClipboardManager.addPrimaryClipChangedListener(
this);
101 public void removeClipboardboardChangedListener(OnClipboardChangedListener listener)
104 mClipboardManager.removePrimaryClipChangedListener(
this);
107 @Override
public void getPrimaryClipManually()
109 onPrimaryClipChanged();