List of usage examples for android.content ClipboardManager addPrimaryClipChangedListener
public void addPrimaryClipChangedListener(OnPrimaryClipChangedListener what)
From source file:org.ulteo.ovd.AndRdpActivity.java
@TargetApi(Build.VERSION_CODES.JELLY_BEAN) private void startSession(int screen_width, int screen_height) { if (isConnected()) return;// www . j a v a2 s. c o m Bundle bundle = getIntent().getExtras(); if (bundle == null) { finish(); return; } Point res; // check if user has chosen a specific resolution if (!Settings.getResolutionAuto(this)) { res = Settings.getResolution(this); } else { res = new Point(screen_width, screen_height); // Prefer wide screen if (!Settings.getResolutionWide(this) && res.y > res.x) { int w = res.x; res.x = res.y; res.y = w; } } Log.i(Config.TAG, "Resolution: " + res.x + "x" + res.y); String gateway_token = null; Boolean gateway_mode = bundle.getBoolean(PARAM_GATEWAYMODE); if (gateway_mode) gateway_token = bundle.getString(PARAM_TOKEN); int drives = Properties.REDIRECT_DRIVES_FULL; Properties prop = smHandler.getResponseProperties(); if (prop != null) drives = prop.isDrives(); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN && bundle.getString(PARAM_SM_URI) != null) { NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); if (nfcAdapter != null) { NdefRecord rtdUriRecord = NdefRecord.createUri(bundle.getString(PARAM_SM_URI)); NdefMessage ndefMessage = new NdefMessage(rtdUriRecord); nfcAdapter.setNdefPushMessage(ndefMessage, this); } } rdp = new Rdp(res, bundle.getString(PARAM_LOGIN), bundle.getString(PARAM_PASSWD), bundle.getString(PARAM_IP), bundle.getInt(PARAM_PORT, SessionManagerCommunication.DEFAULT_RDP_PORT), gateway_mode, gateway_token, drives, bundle.getString(PARAM_RDPSHELL) == null ? "" : bundle.getString(PARAM_RDPSHELL), Settings.getBulkCompression(AndRdpActivity.this), Settings.getConnexionType(AndRdpActivity.this)); Resources resources = getResources(); Intent notificationIntent = new Intent(this, AndRdpActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.icon_bw) .setContentTitle(resources.getText(R.string.app_name)).setOngoing(true) .setContentText(resources.getText(R.string.desktop_session_active)).setContentIntent(pendingIntent); NotificationManager mNotificationManager = (NotificationManager) getSystemService( Context.NOTIFICATION_SERVICE); mNotificationManager.notify(1, mBuilder.build()); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); clipChangedListener = new ClipboardManager.OnPrimaryClipChangedListener() { @Override @TargetApi(Build.VERSION_CODES.HONEYCOMB) public void onPrimaryClipChanged() { ClipboardManager clipboard = (ClipboardManager) AndRdpActivity.this .getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = clipboard.getPrimaryClip(); String text = clip.getItemAt(0).coerceToText(AndRdpActivity.this).toString(); if (Config.DEBUG) Log.d(Config.TAG, "Android clipboard : " + text); if (isLoggedIn()) rdp.sendClipboard(text); } }; clipboard.addPrimaryClipChangedListener(clipChangedListener); } }