private void handlePasteClipboard() {
   final Address address = getAddressFromPrimaryClip();
   if (address == null) {
     final DialogBuilder dialog = new DialogBuilder(activity);
     dialog.setTitle(R.string.address_book_options_paste_from_clipboard_title);
     dialog.setMessage(R.string.address_book_options_paste_from_clipboard_invalid);
     dialog.singleDismissButton(null);
     dialog.show();
   } else if (!wallet.isPubKeyHashMine(address.getHash160())) {
     EditAddressBookEntryFragment.edit(getFragmentManager(), address);
   } else {
     final DialogBuilder dialog = new DialogBuilder(activity);
     dialog.setTitle(R.string.address_book_options_paste_from_clipboard_title);
     dialog.setMessage(R.string.address_book_options_paste_from_clipboard_own_address);
     dialog.singleDismissButton(null);
     dialog.show();
   }
 }
  @Override
  public boolean onContextItemSelected(final MenuItem item) {
    try {
      final AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();

      final Map<String, Object> map =
          (Map<String, Object>) getListView().getAdapter().getItem(menuInfo.position);

      final String address = (String) map.get("addr");

      switch (item.getItemId()) {
        case R.id.wallet_addresses_context_archive:
          {
            MyRemoteWallet remoteWallet = application.getRemoteWallet();

            if (remoteWallet == null) return true;

            remoteWallet.setTag(address, 2);

            application.saveWallet(
                new SuccessCallback() {
                  @Override
                  public void onSuccess() {
                    EventListeners.invokeWalletDidChange();
                  }

                  @Override
                  public void onFail() {}
                });
            return true;
          }
        case R.id.wallet_addresses_context_edit:
          {
            EditAddressBookEntryFragment.edit(getFragmentManager(), address.toString());
            return true;
          }

        case R.id.wallet_addresses_context_show_qr:
          {
            final String uri = BitcoinURI.convertToBitcoinURI(address, null, null, null);
            final int size = (int) (256 * getResources().getDisplayMetrics().density);
            new QrDialog(activity, WalletUtils.getQRCodeBitmap(uri, size)).show();
            return true;
          }

        case R.id.wallet_addresses_context_copy_to_clipboard:
          {
            AbstractWalletActivity.handleCopyToClipboard(activity, address.toString());
            return true;
          }

        case R.id.wallet_addresses_context_default:
          {
            handleDefault(address);
            return true;
          }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }

    return false;
  }