mirror of https://github.com/m2049r/xmrwallet.git
remove payment id everywhere (#646)
This commit is contained in:
parent
e076c19e3e
commit
c3a466c392
|
@ -59,42 +59,36 @@ public class BarcodeData {
|
||||||
final public Asset asset;
|
final public Asset asset;
|
||||||
final public String address;
|
final public String address;
|
||||||
final public String addressName;
|
final public String addressName;
|
||||||
final public String paymentId;
|
|
||||||
final public String amount;
|
final public String amount;
|
||||||
final public String description;
|
final public String description;
|
||||||
final public Security security;
|
final public Security security;
|
||||||
final public String bip70;
|
final public String bip70;
|
||||||
|
|
||||||
public BarcodeData(Asset asset, String address) {
|
public BarcodeData(Asset asset, String address) {
|
||||||
this(asset, address, null, null, null, null, Security.NORMAL);
|
this(asset, address, null, null, null, Security.NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BarcodeData(Asset asset, String address, String amount) {
|
public BarcodeData(Asset asset, String address, String amount) {
|
||||||
this(asset, address, null, null, null, amount, Security.NORMAL);
|
this(asset, address, null, null, amount, Security.NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BarcodeData(Asset asset, String address, String amount, String description, Security security) {
|
public BarcodeData(Asset asset, String address, String amount, String description, Security security) {
|
||||||
this(asset, address, null, null, description, amount, security);
|
this(asset, address, null, description, amount, security);
|
||||||
}
|
|
||||||
|
|
||||||
public BarcodeData(Asset asset, String address, String paymentId, String amount) {
|
|
||||||
this(asset, address, null, paymentId, null, amount, Security.NORMAL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public BarcodeData(Asset asset, String address, String paymentId, String description, String amount) {
|
public BarcodeData(Asset asset, String address, String paymentId, String description, String amount) {
|
||||||
this(asset, address, null, paymentId, description, amount, Security.NORMAL);
|
this(asset, address, null, description, amount, Security.NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BarcodeData(Asset asset, String address, String addressName, String paymentId, String description, String amount, Security security) {
|
public BarcodeData(Asset asset, String address, String addressName, String description, String amount, Security security) {
|
||||||
this(asset, address, addressName, null, paymentId, description, amount, security);
|
this(asset, address, addressName, null, description, amount, security);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BarcodeData(Asset asset, String address, String addressName, String bip70, String paymentId, String description, String amount, Security security) {
|
public BarcodeData(Asset asset, String address, String addressName, String bip70, String description, String amount, Security security) {
|
||||||
this.asset = asset;
|
this.asset = asset;
|
||||||
this.address = address;
|
this.address = address;
|
||||||
this.bip70 = bip70;
|
this.bip70 = bip70;
|
||||||
this.addressName = addressName;
|
this.addressName = addressName;
|
||||||
this.paymentId = paymentId;
|
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
this.security = security;
|
this.security = security;
|
||||||
|
@ -110,11 +104,6 @@ public class BarcodeData {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(BarcodeData.XMR_SCHEME).append(address);
|
sb.append(BarcodeData.XMR_SCHEME).append(address);
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
if ((paymentId != null) && !paymentId.isEmpty()) {
|
|
||||||
sb.append("?");
|
|
||||||
first = false;
|
|
||||||
sb.append(BarcodeData.XMR_PAYMENTID).append('=').append(paymentId);
|
|
||||||
}
|
|
||||||
if ((description != null) && !description.isEmpty()) {
|
if ((description != null) && !description.isEmpty()) {
|
||||||
sb.append(first ? "?" : "&");
|
sb.append(first ? "?" : "&");
|
||||||
first = false;
|
first = false;
|
||||||
|
@ -185,8 +174,11 @@ public class BarcodeData {
|
||||||
String address = monero.getPath();
|
String address = monero.getPath();
|
||||||
|
|
||||||
String paymentId = parms.get(XMR_PAYMENTID);
|
String paymentId = parms.get(XMR_PAYMENTID);
|
||||||
// deal with empty payment_id created by non-spec-conforming apps
|
// no support for payment ids!
|
||||||
if ((paymentId != null) && paymentId.isEmpty()) paymentId = null;
|
if (paymentId != null) {
|
||||||
|
Timber.e("no support for payment ids!");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
String description = parms.get(XMR_DESCRIPTION);
|
String description = parms.get(XMR_DESCRIPTION);
|
||||||
String amount = parms.get(XMR_AMOUNT);
|
String amount = parms.get(XMR_AMOUNT);
|
||||||
|
@ -198,10 +190,6 @@ public class BarcodeData {
|
||||||
return null; // we have an amount but its not a number!
|
return null; // we have an amount but its not a number!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((paymentId != null) && !Wallet.isPaymentIdValid(paymentId)) {
|
|
||||||
Timber.d("paymentId invalid");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Wallet.isAddressValid(address)) {
|
if (!Wallet.isAddressValid(address)) {
|
||||||
Timber.d("address invalid");
|
Timber.d("address invalid");
|
||||||
|
@ -267,7 +255,7 @@ public class BarcodeData {
|
||||||
Timber.d("[%s] is not http url", bip70);
|
Timber.d("[%s] is not http url", bip70);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return new BarcodeData(BarcodeData.Asset.BTC, null, null, bip70, null, description, null, Security.NORMAL);
|
return new BarcodeData(BarcodeData.Asset.BTC, null, null, bip70, description, null, Security.NORMAL);
|
||||||
}
|
}
|
||||||
if (!BitcoinAddressValidator.validate(address)) {
|
if (!BitcoinAddressValidator.validate(address)) {
|
||||||
Timber.d("BTC address (%s) invalid", address);
|
Timber.d("BTC address (%s) invalid", address);
|
||||||
|
|
|
@ -29,19 +29,16 @@ public class TxData implements Parcelable {
|
||||||
|
|
||||||
public TxData(TxData txData) {
|
public TxData(TxData txData) {
|
||||||
this.dstAddr = txData.dstAddr;
|
this.dstAddr = txData.dstAddr;
|
||||||
this.paymentId = txData.paymentId;
|
|
||||||
this.amount = txData.amount;
|
this.amount = txData.amount;
|
||||||
this.mixin = txData.mixin;
|
this.mixin = txData.mixin;
|
||||||
this.priority = txData.priority;
|
this.priority = txData.priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TxData(String dstAddr,
|
public TxData(String dstAddr,
|
||||||
String paymentId,
|
|
||||||
long amount,
|
long amount,
|
||||||
int mixin,
|
int mixin,
|
||||||
PendingTransaction.Priority priority) {
|
PendingTransaction.Priority priority) {
|
||||||
this.dstAddr = dstAddr;
|
this.dstAddr = dstAddr;
|
||||||
this.paymentId = paymentId;
|
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
this.mixin = mixin;
|
this.mixin = mixin;
|
||||||
this.priority = priority;
|
this.priority = priority;
|
||||||
|
@ -51,10 +48,6 @@ public class TxData implements Parcelable {
|
||||||
return dstAddr;
|
return dstAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPaymentId() {
|
|
||||||
return paymentId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getAmount() {
|
public long getAmount() {
|
||||||
return amount;
|
return amount;
|
||||||
}
|
}
|
||||||
|
@ -71,10 +64,6 @@ public class TxData implements Parcelable {
|
||||||
this.dstAddr = dstAddr;
|
this.dstAddr = dstAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPaymentId(String paymentId) {
|
|
||||||
this.paymentId = paymentId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAmount(long amount) {
|
public void setAmount(long amount) {
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
}
|
}
|
||||||
|
@ -96,7 +85,6 @@ public class TxData implements Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String dstAddr;
|
private String dstAddr;
|
||||||
private String paymentId;
|
|
||||||
private long amount;
|
private long amount;
|
||||||
private int mixin;
|
private int mixin;
|
||||||
private PendingTransaction.Priority priority;
|
private PendingTransaction.Priority priority;
|
||||||
|
@ -106,7 +94,6 @@ public class TxData implements Parcelable {
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel out, int flags) {
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
out.writeString(dstAddr);
|
out.writeString(dstAddr);
|
||||||
out.writeString(paymentId);
|
|
||||||
out.writeLong(amount);
|
out.writeLong(amount);
|
||||||
out.writeInt(mixin);
|
out.writeInt(mixin);
|
||||||
out.writeInt(priority.getValue());
|
out.writeInt(priority.getValue());
|
||||||
|
@ -125,7 +112,6 @@ public class TxData implements Parcelable {
|
||||||
|
|
||||||
protected TxData(Parcel in) {
|
protected TxData(Parcel in) {
|
||||||
dstAddr = in.readString();
|
dstAddr = in.readString();
|
||||||
paymentId = in.readString();
|
|
||||||
amount = in.readLong();
|
amount = in.readLong();
|
||||||
mixin = in.readInt();
|
mixin = in.readInt();
|
||||||
priority = PendingTransaction.Priority.fromInteger(in.readInt());
|
priority = PendingTransaction.Priority.fromInteger(in.readInt());
|
||||||
|
@ -142,14 +128,12 @@ public class TxData implements Parcelable {
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
sb.append("dstAddr:");
|
sb.append("dstAddr:");
|
||||||
sb.append(dstAddr);
|
sb.append(dstAddr);
|
||||||
sb.append(",paymentId:");
|
|
||||||
sb.append(paymentId);
|
|
||||||
sb.append(",amount:");
|
sb.append(",amount:");
|
||||||
sb.append(amount);
|
sb.append(amount);
|
||||||
sb.append(",mixin:");
|
sb.append(",mixin:");
|
||||||
sb.append(mixin);
|
sb.append(mixin);
|
||||||
sb.append(",priority:");
|
sb.append(",priority:");
|
||||||
sb.append(String.valueOf(priority));
|
sb.append(priority);
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,6 @@ import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
@ -86,12 +85,9 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
|
|
||||||
private EditText etDummy;
|
private EditText etDummy;
|
||||||
private TextInputLayout etAddress;
|
private TextInputLayout etAddress;
|
||||||
private TextInputLayout etPaymentId;
|
|
||||||
private TextInputLayout etNotes;
|
private TextInputLayout etNotes;
|
||||||
private Button bPaymentId;
|
|
||||||
private CardView cvScan;
|
private CardView cvScan;
|
||||||
private View tvPaymentIdIntegrated;
|
private View tvPaymentIdIntegrated;
|
||||||
private View llPaymentId;
|
|
||||||
private TextView tvXmrTo;
|
private TextView tvXmrTo;
|
||||||
private View llXmrTo;
|
private View llXmrTo;
|
||||||
private ImageButton bPasteAddress;
|
private ImageButton bPasteAddress;
|
||||||
|
@ -114,7 +110,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
View view = inflater.inflate(R.layout.fragment_send_address, container, false);
|
View view = inflater.inflate(R.layout.fragment_send_address, container, false);
|
||||||
|
|
||||||
tvPaymentIdIntegrated = view.findViewById(R.id.tvPaymentIdIntegrated);
|
tvPaymentIdIntegrated = view.findViewById(R.id.tvPaymentIdIntegrated);
|
||||||
llPaymentId = view.findViewById(R.id.llPaymentId);
|
|
||||||
llXmrTo = view.findViewById(R.id.llXmrTo);
|
llXmrTo = view.findViewById(R.id.llXmrTo);
|
||||||
tvXmrTo = view.findViewById(R.id.tvXmrTo);
|
tvXmrTo = view.findViewById(R.id.tvXmrTo);
|
||||||
tvXmrTo.setText(Html.fromHtml(getString(R.string.info_xmrto)));
|
tvXmrTo.setText(Html.fromHtml(getString(R.string.info_xmrto)));
|
||||||
|
@ -158,8 +153,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
etAddress.setError(null);
|
etAddress.setError(null);
|
||||||
if (isIntegratedAddress()) {
|
if (isIntegratedAddress()) {
|
||||||
Timber.d("isIntegratedAddress");
|
Timber.d("isIntegratedAddress");
|
||||||
etPaymentId.getEditText().getText().clear();
|
|
||||||
llPaymentId.setVisibility(View.INVISIBLE);
|
|
||||||
etAddress.setError(getString(R.string.info_paymentid_integrated));
|
etAddress.setError(getString(R.string.info_paymentid_integrated));
|
||||||
tvPaymentIdIntegrated.setVisibility(View.VISIBLE);
|
tvPaymentIdIntegrated.setVisibility(View.VISIBLE);
|
||||||
llXmrTo.setVisibility(View.INVISIBLE);
|
llXmrTo.setVisibility(View.INVISIBLE);
|
||||||
|
@ -169,7 +162,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
setBtcMode();
|
setBtcMode();
|
||||||
} else {
|
} else {
|
||||||
Timber.d("isStandardAddress or other");
|
Timber.d("isStandardAddress or other");
|
||||||
llPaymentId.setVisibility(View.VISIBLE);
|
|
||||||
tvPaymentIdIntegrated.setVisibility(View.INVISIBLE);
|
tvPaymentIdIntegrated.setVisibility(View.INVISIBLE);
|
||||||
llXmrTo.setVisibility(View.INVISIBLE);
|
llXmrTo.setVisibility(View.INVISIBLE);
|
||||||
sendListener.setMode(SendFragment.Mode.XMR);
|
sendListener.setMode(SendFragment.Mode.XMR);
|
||||||
|
@ -211,46 +203,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
etPaymentId = view.findViewById(R.id.etPaymentId);
|
|
||||||
etPaymentId.getEditText().setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
|
||||||
etPaymentId.getEditText().setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
|
||||||
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
||||||
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN))
|
|
||||||
|| (actionId == EditorInfo.IME_ACTION_NEXT)) {
|
|
||||||
if (checkPaymentId()) {
|
|
||||||
etNotes.requestFocus();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
etPaymentId.getEditText().addTextChangedListener(new TextWatcher() {
|
|
||||||
@Override
|
|
||||||
public void afterTextChanged(Editable editable) {
|
|
||||||
etPaymentId.setError(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
bPaymentId = view.findViewById(R.id.bPaymentId);
|
|
||||||
bPaymentId.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
final EditText et = etPaymentId.getEditText();
|
|
||||||
et.setText((Wallet.generatePaymentId()));
|
|
||||||
et.setSelection(et.getText().length());
|
|
||||||
etPaymentId.requestFocus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
etNotes = view.findViewById(R.id.etNotes);
|
etNotes = view.findViewById(R.id.etNotes);
|
||||||
etNotes.getEditText().setRawInputType(InputType.TYPE_CLASS_TEXT);
|
etNotes.getEditText().setRawInputType(InputType.TYPE_CLASS_TEXT);
|
||||||
etNotes.getEditText().setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
etNotes.getEditText().setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||||
|
@ -286,8 +238,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
|
|
||||||
private void setBtcMode() {
|
private void setBtcMode() {
|
||||||
Timber.d("setBtcMode");
|
Timber.d("setBtcMode");
|
||||||
etPaymentId.getEditText().getText().clear();
|
|
||||||
llPaymentId.setVisibility(View.INVISIBLE);
|
|
||||||
tvPaymentIdIntegrated.setVisibility(View.INVISIBLE);
|
tvPaymentIdIntegrated.setVisibility(View.INVISIBLE);
|
||||||
llXmrTo.setVisibility(View.VISIBLE);
|
llXmrTo.setVisibility(View.VISIBLE);
|
||||||
sendListener.setMode(SendFragment.Mode.BTC);
|
sendListener.setMode(SendFragment.Mode.BTC);
|
||||||
|
@ -342,7 +292,7 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
|
|
||||||
final BarcodeData barcodeData =
|
final BarcodeData barcodeData =
|
||||||
new BarcodeData(BarcodeData.Asset.BTC, address, null,
|
new BarcodeData(BarcodeData.Asset.BTC, address, null,
|
||||||
resolvedBip70, null, null, String.valueOf(amount),
|
resolvedBip70, null, String.valueOf(amount),
|
||||||
BarcodeData.Security.BIP70);
|
BarcodeData.Security.BIP70);
|
||||||
etNotes.post(new Runnable() {
|
etNotes.post(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -403,22 +353,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
return BitcoinAddressValidator.validate(address);
|
return BitcoinAddressValidator.validate(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkPaymentId() {
|
|
||||||
String paymentId = etPaymentId.getEditText().getText().toString();
|
|
||||||
boolean ok = paymentId.isEmpty() || Wallet.isPaymentIdValid(paymentId);
|
|
||||||
if (!ok) {
|
|
||||||
etPaymentId.setError(getString(R.string.receive_paymentid_invalid));
|
|
||||||
} else {
|
|
||||||
if (!paymentId.isEmpty() && isIntegratedAddress()) {
|
|
||||||
ok = false;
|
|
||||||
etPaymentId.setError(getString(R.string.receive_integrated_paymentid_invalid));
|
|
||||||
} else {
|
|
||||||
etPaymentId.setError(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void shakeAddress() {
|
private void shakeAddress() {
|
||||||
etAddress.startAnimation(Helper.getShakeAnimation(getContext()));
|
etAddress.startAnimation(Helper.getShakeAnimation(getContext()));
|
||||||
}
|
}
|
||||||
|
@ -441,11 +375,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!checkPaymentId()) {
|
|
||||||
etPaymentId.startAnimation(Helper.getShakeAnimation(getContext()));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sendListener != null) {
|
if (sendListener != null) {
|
||||||
TxData txData = sendListener.getTxData();
|
TxData txData = sendListener.getTxData();
|
||||||
if (txData instanceof TxDataBtc) {
|
if (txData instanceof TxDataBtc) {
|
||||||
|
@ -459,10 +388,8 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
((TxDataBtc) txData).setBip70(null);
|
((TxDataBtc) txData).setBip70(null);
|
||||||
}
|
}
|
||||||
txData.setDestinationAddress(null);
|
txData.setDestinationAddress(null);
|
||||||
txData.setPaymentId("");
|
|
||||||
} else {
|
} else {
|
||||||
txData.setDestinationAddress(etAddress.getEditText().getText().toString());
|
txData.setDestinationAddress(etAddress.getEditText().getText().toString());
|
||||||
txData.setPaymentId(etPaymentId.getEditText().getText().toString());
|
|
||||||
}
|
}
|
||||||
txData.setUserNotes(new UserNotes(etNotes.getEditText().getText().toString()));
|
txData.setUserNotes(new UserNotes(etNotes.getEditText().getText().toString()));
|
||||||
txData.setPriority(PendingTransaction.Priority.Priority_Default);
|
txData.setPriority(PendingTransaction.Priority.Priority_Default);
|
||||||
|
@ -525,14 +452,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
etAddress.setError(null);
|
etAddress.setError(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
String scannedPaymentId = barcodeData.paymentId;
|
|
||||||
if (scannedPaymentId != null) {
|
|
||||||
etPaymentId.getEditText().setText(scannedPaymentId);
|
|
||||||
checkPaymentId();
|
|
||||||
} else {
|
|
||||||
etPaymentId.getEditText().getText().clear();
|
|
||||||
etPaymentId.setError(null);
|
|
||||||
}
|
|
||||||
String scannedNotes = barcodeData.description;
|
String scannedNotes = barcodeData.description;
|
||||||
if (scannedNotes != null) {
|
if (scannedNotes != null) {
|
||||||
etNotes.getEditText().setText(scannedNotes);
|
etNotes.getEditText().setText(scannedNotes);
|
||||||
|
|
|
@ -138,12 +138,6 @@ public class SendBtcSuccessWizardFragment extends SendWizardFragment {
|
||||||
|
|
||||||
btcData = (TxDataBtc) sendListener.getTxData();
|
btcData = (TxDataBtc) sendListener.getTxData();
|
||||||
tvTxAddress.setText(btcData.getDestinationAddress());
|
tvTxAddress.setText(btcData.getDestinationAddress());
|
||||||
String paymentId = btcData.getPaymentId();
|
|
||||||
if ((paymentId != null) && (!paymentId.isEmpty())) {
|
|
||||||
tvTxPaymentId.setText(btcData.getPaymentId());
|
|
||||||
} else {
|
|
||||||
tvTxPaymentId.setText("-");
|
|
||||||
}
|
|
||||||
|
|
||||||
final PendingTx committedTx = sendListener.getCommittedTx();
|
final PendingTx committedTx = sendListener.getCommittedTx();
|
||||||
if (committedTx != null) {
|
if (committedTx != null) {
|
||||||
|
|
|
@ -70,7 +70,6 @@ public class SendConfirmWizardFragment extends SendWizardFragment implements Sen
|
||||||
}
|
}
|
||||||
|
|
||||||
private TextView tvTxAddress;
|
private TextView tvTxAddress;
|
||||||
private TextView tvTxPaymentId;
|
|
||||||
private TextView tvTxNotes;
|
private TextView tvTxNotes;
|
||||||
private TextView tvTxAmount;
|
private TextView tvTxAmount;
|
||||||
private TextView tvTxFee;
|
private TextView tvTxFee;
|
||||||
|
@ -90,7 +89,6 @@ public class SendConfirmWizardFragment extends SendWizardFragment implements Sen
|
||||||
R.layout.fragment_send_confirm, container, false);
|
R.layout.fragment_send_confirm, container, false);
|
||||||
|
|
||||||
tvTxAddress = view.findViewById(R.id.tvTxAddress);
|
tvTxAddress = view.findViewById(R.id.tvTxAddress);
|
||||||
tvTxPaymentId = view.findViewById(R.id.tvTxPaymentId);
|
|
||||||
tvTxNotes = view.findViewById(R.id.tvTxNotes);
|
tvTxNotes = view.findViewById(R.id.tvTxNotes);
|
||||||
tvTxAmount = view.findViewById(R.id.tvTxAmount);
|
tvTxAmount = view.findViewById(R.id.tvTxAmount);
|
||||||
tvTxFee = view.findViewById(R.id.tvTxFee);
|
tvTxFee = view.findViewById(R.id.tvTxFee);
|
||||||
|
@ -192,12 +190,6 @@ public class SendConfirmWizardFragment extends SendWizardFragment implements Sen
|
||||||
|
|
||||||
final TxData txData = sendListener.getTxData();
|
final TxData txData = sendListener.getTxData();
|
||||||
tvTxAddress.setText(txData.getDestinationAddress());
|
tvTxAddress.setText(txData.getDestinationAddress());
|
||||||
String paymentId = txData.getPaymentId();
|
|
||||||
if ((paymentId != null) && (!paymentId.isEmpty())) {
|
|
||||||
tvTxPaymentId.setText(txData.getPaymentId());
|
|
||||||
} else {
|
|
||||||
tvTxPaymentId.setText("-");
|
|
||||||
}
|
|
||||||
UserNotes notes = sendListener.getTxData().getUserNotes();
|
UserNotes notes = sendListener.getTxData().getUserNotes();
|
||||||
if ((notes != null) && (!notes.note.isEmpty())) {
|
if ((notes != null) && (!notes.note.isEmpty())) {
|
||||||
tvTxNotes.setText(notes.note);
|
tvTxNotes.setText(notes.note);
|
||||||
|
|
|
@ -111,12 +111,6 @@ public class SendSuccessWizardFragment extends SendWizardFragment {
|
||||||
|
|
||||||
final TxData txData = sendListener.getTxData();
|
final TxData txData = sendListener.getTxData();
|
||||||
tvTxAddress.setText(txData.getDestinationAddress());
|
tvTxAddress.setText(txData.getDestinationAddress());
|
||||||
String paymentId = txData.getPaymentId();
|
|
||||||
if ((paymentId != null) && (!paymentId.isEmpty())) {
|
|
||||||
tvTxPaymentId.setText(txData.getPaymentId());
|
|
||||||
} else {
|
|
||||||
tvTxPaymentId.setText("-");
|
|
||||||
}
|
|
||||||
|
|
||||||
final PendingTx committedTx = sendListener.getCommittedTx();
|
final PendingTx committedTx = sendListener.getCommittedTx();
|
||||||
if (committedTx != null) {
|
if (committedTx != null) {
|
||||||
|
|
|
@ -298,22 +298,21 @@ public class Wallet {
|
||||||
public PendingTransaction createTransaction(TxData txData) {
|
public PendingTransaction createTransaction(TxData txData) {
|
||||||
return createTransaction(
|
return createTransaction(
|
||||||
txData.getDestinationAddress(),
|
txData.getDestinationAddress(),
|
||||||
txData.getPaymentId(),
|
|
||||||
txData.getAmount(),
|
txData.getAmount(),
|
||||||
txData.getMixin(),
|
txData.getMixin(),
|
||||||
txData.getPriority());
|
txData.getPriority());
|
||||||
}
|
}
|
||||||
|
|
||||||
public PendingTransaction createTransaction(String dst_addr, String payment_id,
|
public PendingTransaction createTransaction(String dst_addr,
|
||||||
long amount, int mixin_count,
|
long amount, int mixin_count,
|
||||||
PendingTransaction.Priority priority) {
|
PendingTransaction.Priority priority) {
|
||||||
disposePendingTransaction();
|
disposePendingTransaction();
|
||||||
int _priority = priority.getValue();
|
int _priority = priority.getValue();
|
||||||
long txHandle =
|
long txHandle =
|
||||||
(amount == SWEEP_ALL ?
|
(amount == SWEEP_ALL ?
|
||||||
createSweepTransaction(dst_addr, payment_id, mixin_count, _priority,
|
createSweepTransaction(dst_addr, "", mixin_count, _priority,
|
||||||
accountIndex) :
|
accountIndex) :
|
||||||
createTransactionJ(dst_addr, payment_id, amount, mixin_count, _priority,
|
createTransactionJ(dst_addr, "", amount, mixin_count, _priority,
|
||||||
accountIndex));
|
accountIndex));
|
||||||
pendingTransaction = new PendingTransaction(txHandle);
|
pendingTransaction = new PendingTransaction(txHandle);
|
||||||
return pendingTransaction;
|
return pendingTransaction;
|
||||||
|
|
|
@ -108,50 +108,6 @@
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
tools:text="@string/info_xmrto" />
|
tools:text="@string/info_xmrto" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:id="@+id/llPaymentId"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginBottom="4dp"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:visibility="visible">
|
|
||||||
|
|
||||||
<android.support.design.widget.TextInputLayout
|
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
|
|
||||||
android:id="@+id/etPaymentId"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:layout_toStartOf="@+id/bPaymentId"
|
|
||||||
app:counterEnabled="true"
|
|
||||||
app:counterMaxLength="16"
|
|
||||||
app:errorEnabled="true">
|
|
||||||
|
|
||||||
<android.support.design.widget.TextInputEditText
|
|
||||||
style="@style/MoneroEdit"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="10"
|
|
||||||
android:hint="@string/send_paymentid_hint"
|
|
||||||
android:imeOptions="actionNext"
|
|
||||||
android:inputType="textMultiLine"
|
|
||||||
android:textAlignment="textStart" />
|
|
||||||
</android.support.design.widget.TextInputLayout>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/bPaymentId"
|
|
||||||
style="@style/MoneroText.Button.Small"
|
|
||||||
android:layout_width="56dp"
|
|
||||||
android:layout_height="56dp"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:background="?android:selectableItemBackgroundBorderless"
|
|
||||||
android:drawableTop="@drawable/ic_settings_orange_24dp"
|
|
||||||
android:text="@string/send_generate_paymentid_hint" />
|
|
||||||
</RelativeLayout>
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<android.support.design.widget.TextInputLayout
|
<android.support.design.widget.TextInputLayout
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
|
|
@ -107,27 +107,6 @@
|
||||||
android:textAlignment="textStart"
|
android:textAlignment="textStart"
|
||||||
tools:text="4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk" />
|
tools:text="4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk" />
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="@style/MoneroText.Confirm.Label"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_send_payment_id" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvTxPaymentId"
|
|
||||||
style="@style/MoneroText.Confirm"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
tools:text="d666a38d4a28fb38" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||||
android:id="@+id/cvXmrTo"
|
android:id="@+id/cvXmrTo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -26,29 +26,6 @@
|
||||||
android:textAlignment="textStart"
|
android:textAlignment="textStart"
|
||||||
tools:text="4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk" />
|
tools:text="4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk" />
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="@style/MoneroText.Confirm.Label"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_send_payment_id"
|
|
||||||
android:textAlignment="textStart" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvTxPaymentId"
|
|
||||||
style="@style/MoneroText.Confirm"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:textAlignment="textStart"
|
|
||||||
tools:text="d666a38d4a28fb38" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -86,8 +86,8 @@
|
||||||
style="@style/MoneroText"
|
style="@style/MoneroText"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
android:textAlignment="textStart"
|
android:textAlignment="textStart"
|
||||||
tools:text="fcb12cbe9f43d4e8b9ee54f48d450a89a6937946db856506820df0539571801d" />
|
tools:text="fcb12cbe9f43d4e8b9ee54f48d450a89a6937946db856506820df0539571801d" />
|
||||||
|
|
||||||
|
@ -103,32 +103,10 @@
|
||||||
style="@style/MoneroText"
|
style="@style/MoneroText"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
android:textAlignment="textStart"
|
android:textAlignment="textStart"
|
||||||
tools:text="4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk" />
|
tools:text="4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk" />
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="@style/MoneroText.Confirm.Label"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_send_payment_id" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvTxPaymentId"
|
|
||||||
style="@style/MoneroText.Confirm"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
tools:text="d666a38d4a28fb38" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
Loading…
Reference in New Issue