Include owner name for Monese & Satispay accounts

This commit is contained in:
jmacxx 2021-10-31 13:52:33 -05:00 committed by Christoph Atteneder
parent 6f41558ae0
commit f5c653b92a
No known key found for this signature in database
GPG key ID: CD5DC1C529CDFD3B
6 changed files with 68 additions and 20 deletions

View file

@ -34,6 +34,14 @@ public final class MoneseAccount extends PaymentAccount {
return new MoneseAccountPayload(paymentMethod.getId(), id);
}
public void setHolderName(String accountId) {
((MoneseAccountPayload) paymentAccountPayload).setHolderName(accountId);
}
public String getHolderName() {
return ((MoneseAccountPayload) paymentAccountPayload).getHolderName();
}
public void setMobileNr(String accountId) {
((MoneseAccountPayload) paymentAccountPayload).setMobileNr(accountId);
}

View file

@ -34,6 +34,14 @@ public final class SatispayAccount extends CountryBasedPaymentAccount {
return new SatispayAccountPayload(paymentMethod.getId(), id);
}
public void setHolderName(String accountId) {
((SatispayAccountPayload) paymentAccountPayload).setHolderName(accountId);
}
public String getHolderName() {
return ((SatispayAccountPayload) paymentAccountPayload).getHolderName();
}
public void setMobileNr(String accountId) {
((SatispayAccountPayload) paymentAccountPayload).setMobileNr(accountId);
}

View file

@ -38,6 +38,7 @@ import lombok.extern.slf4j.Slf4j;
@Getter
@Slf4j
public final class MoneseAccountPayload extends PaymentAccountPayload {
private String holderName = "";
private String mobileNr = "";
public MoneseAccountPayload(String paymentMethod, String id) {
@ -46,6 +47,7 @@ public final class MoneseAccountPayload extends PaymentAccountPayload {
private MoneseAccountPayload(String paymentMethod,
String id,
String holderName,
String mobileNr,
long maxTradePeriod,
Map<String, String> excludeFromJsonDataMap) {
@ -54,19 +56,23 @@ public final class MoneseAccountPayload extends PaymentAccountPayload {
maxTradePeriod,
excludeFromJsonDataMap);
this.holderName = holderName;
this.mobileNr = mobileNr;
}
@Override
public Message toProtoMessage() {
return getPaymentAccountPayloadBuilder()
.setMoneseAccountPayload(protobuf.MoneseAccountPayload.newBuilder().setMobileNr(mobileNr))
.setMoneseAccountPayload(protobuf.MoneseAccountPayload.newBuilder()
.setHolderName(holderName)
.setMobileNr(mobileNr))
.build();
}
public static MoneseAccountPayload fromProto(protobuf.PaymentAccountPayload proto) {
return new MoneseAccountPayload(proto.getPaymentMethodId(),
proto.getId(),
proto.getMoneseAccountPayload().getHolderName(),
proto.getMoneseAccountPayload().getMobileNr(),
proto.getMaxTradePeriod(),
new HashMap<>(proto.getExcludeFromJsonDataMap()));
@ -74,7 +80,7 @@ public final class MoneseAccountPayload extends PaymentAccountPayload {
@Override
public String getPaymentDetails() {
return Res.get(paymentMethodId) + " - " + Res.getWithCol("payment.mobile") + " " + mobileNr;
return Res.get(paymentMethodId) + " - " + Res.getWithCol("payment.account.userName") + " " + holderName;
}
@Override
@ -84,6 +90,6 @@ public final class MoneseAccountPayload extends PaymentAccountPayload {
@Override
public byte[] getAgeWitnessInputData() {
return super.getAgeWitnessInputData(mobileNr.getBytes(StandardCharsets.UTF_8));
return super.getAgeWitnessInputData(holderName.getBytes(StandardCharsets.UTF_8));
}
}

View file

@ -38,6 +38,7 @@ import lombok.extern.slf4j.Slf4j;
@Getter
@Slf4j
public final class SatispayAccountPayload extends CountryBasedPaymentAccountPayload {
private String holderName = "";
private String mobileNr = "";
public SatispayAccountPayload(String paymentMethod, String id) {
@ -47,6 +48,7 @@ public final class SatispayAccountPayload extends CountryBasedPaymentAccountPayl
private SatispayAccountPayload(String paymentMethod,
String id,
String countryCode,
String holderName,
String mobileNr,
long maxTradePeriod,
Map<String, String> excludeFromJsonDataMap) {
@ -56,12 +58,14 @@ public final class SatispayAccountPayload extends CountryBasedPaymentAccountPayl
maxTradePeriod,
excludeFromJsonDataMap);
this.holderName = holderName;
this.mobileNr = mobileNr;
}
@Override
public Message toProtoMessage() {
protobuf.SatispayAccountPayload.Builder builder = protobuf.SatispayAccountPayload.newBuilder()
.setHolderName(holderName)
.setMobileNr(mobileNr);
final protobuf.CountryBasedPaymentAccountPayload.Builder countryBasedPaymentAccountPayload = getPaymentAccountPayloadBuilder()
.getCountryBasedPaymentAccountPayloadBuilder()
@ -73,18 +77,19 @@ public final class SatispayAccountPayload extends CountryBasedPaymentAccountPayl
public static SatispayAccountPayload fromProto(protobuf.PaymentAccountPayload proto) {
protobuf.CountryBasedPaymentAccountPayload countryBasedPaymentAccountPayload = proto.getCountryBasedPaymentAccountPayload();
protobuf.SatispayAccountPayload paytmAccountPayloadPB = countryBasedPaymentAccountPayload.getSatispayAccountPayload();
protobuf.SatispayAccountPayload accountPayloadPB = countryBasedPaymentAccountPayload.getSatispayAccountPayload();
return new SatispayAccountPayload(proto.getPaymentMethodId(),
proto.getId(),
countryBasedPaymentAccountPayload.getCountryCode(),
paytmAccountPayloadPB.getMobileNr(),
accountPayloadPB.getHolderName(),
accountPayloadPB.getMobileNr(),
proto.getMaxTradePeriod(),
new HashMap<>(proto.getExcludeFromJsonDataMap()));
}
@Override
public String getPaymentDetails() {
return Res.get(paymentMethodId) + " - " + Res.getWithCol("payment.mobile") + " " + mobileNr;
return Res.get(paymentMethodId) + " - " + Res.getWithCol("payment.account.userName") + " " + holderName;
}
@Override
@ -94,6 +99,6 @@ public final class SatispayAccountPayload extends CountryBasedPaymentAccountPayl
@Override
public byte[] getAgeWitnessInputData() {
return super.getAgeWitnessInputData(mobileNr.getBytes(StandardCharsets.UTF_8));
return super.getAgeWitnessInputData(holderName.getBytes(StandardCharsets.UTF_8));
}
}

View file

@ -31,7 +31,6 @@ import bisq.core.payment.payload.MoneseAccountPayload;
import bisq.core.util.coin.CoinFormatter;
import bisq.core.util.validation.InputValidator;
import javafx.scene.control.TextField;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
@ -41,11 +40,14 @@ import static bisq.desktop.util.FormBuilder.addTopLabelTextField;
public class MoneseForm extends PaymentMethodForm {
private final MoneseAccount account;
private InputTextField holderNameInputTextField;
private InputTextField mobileNrInputTextField;
public static int addFormForBuyer(GridPane gridPane, int gridRow,
PaymentAccountPayload paymentAccountPayload) {
addCompactTopLabelTextFieldWithCopyIcon(gridPane, ++gridRow, Res.get("payment.mobile"),
addCompactTopLabelTextFieldWithCopyIcon(gridPane, ++gridRow, 0, Res.get("payment.account.owner"),
((MoneseAccountPayload) paymentAccountPayload).getHolderName());
addCompactTopLabelTextFieldWithCopyIcon(gridPane, gridRow, 1, Res.get("payment.mobile"),
((MoneseAccountPayload) paymentAccountPayload).getMobileNr());
return gridRow;
}
@ -61,6 +63,13 @@ public class MoneseForm extends PaymentMethodForm {
public void addFormForAddAccount() {
gridRowFrom = gridRow + 1;
holderNameInputTextField = FormBuilder.addInputTextField(gridPane, ++gridRow, Res.get("payment.account.owner"));
holderNameInputTextField.setValidator(inputValidator);
holderNameInputTextField.textProperty().addListener((ov, oldValue, newValue) -> {
account.setHolderName(newValue.trim());
updateFromInputs();
});
mobileNrInputTextField = FormBuilder.addInputTextField(gridPane, ++gridRow, Res.get("payment.mobile"));
mobileNrInputTextField.setValidator(inputValidator);
mobileNrInputTextField.textProperty().addListener((ov, oldValue, newValue) -> {
@ -99,9 +108,10 @@ public class MoneseForm extends PaymentMethodForm {
account.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE);
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.paymentMethod"),
Res.get(account.getPaymentMethod().getId()));
TextField field = addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.mobile"),
account.getMobileNr()).second;
field.setMouseTransparent(false);
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.account.owner"), account.getHolderName())
.second.setMouseTransparent(false);
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.mobile"), account.getMobileNr())
.second.setMouseTransparent(false);
addLimitations(true);
addCurrenciesGrid(false);
}
@ -109,7 +119,7 @@ public class MoneseForm extends PaymentMethodForm {
@Override
public void updateAllInputsValid() {
allInputsValid.set(isAccountNameValid()
&& account.getMobileNr() != null
&& inputValidator.validate(account.getHolderName()).isValid
&& inputValidator.validate(account.getMobileNr()).isValid
&& account.getTradeCurrencies().size() > 0);
}

View file

@ -32,21 +32,23 @@ import bisq.core.payment.payload.SatispayAccountPayload;
import bisq.core.util.coin.CoinFormatter;
import bisq.core.util.validation.InputValidator;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import static bisq.desktop.util.FormBuilder.addCompactTopLabelTextField;
import static bisq.desktop.util.FormBuilder.addCompactTopLabelTextFieldWithCopyIcon;
import static bisq.desktop.util.FormBuilder.addTopLabelTextField;
import static bisq.desktop.util.FormBuilder.addTopLabelTextFieldWithCopyIcon;
public class SatispayForm extends PaymentMethodForm {
private final SatispayAccount account;
private InputTextField holderNameField;
private InputTextField mobileNrInputTextField;
public static int addFormForBuyer(GridPane gridPane, int gridRow,
PaymentAccountPayload paymentAccountPayload) {
addTopLabelTextFieldWithCopyIcon(gridPane, gridRow, 1, Res.get("payment.mobile"),
((SatispayAccountPayload) paymentAccountPayload).getMobileNr(), Layout.COMPACT_FIRST_ROW_AND_GROUP_DISTANCE);
addCompactTopLabelTextFieldWithCopyIcon(gridPane, ++gridRow, 0, Res.get("payment.account.owner"),
((SatispayAccountPayload) paymentAccountPayload).getHolderName());
addCompactTopLabelTextFieldWithCopyIcon(gridPane, gridRow, 1, Res.get("payment.mobile"),
((SatispayAccountPayload) paymentAccountPayload).getMobileNr());
return gridRow;
}
@ -65,6 +67,13 @@ public class SatispayForm extends PaymentMethodForm {
gridRowFrom = gridRow + 1;
holderNameField = FormBuilder.addInputTextField(gridPane, ++gridRow, Res.get("payment.account.owner"));
holderNameField.setValidator(inputValidator);
holderNameField.textProperty().addListener((ov, oldValue, newValue) -> {
account.setHolderName(newValue.trim());
updateFromInputs();
});
mobileNrInputTextField = FormBuilder.addInputTextField(gridPane, ++gridRow, Res.get("payment.mobile"));
mobileNrInputTextField.setValidator(inputValidator);
mobileNrInputTextField.textProperty().addListener((ov, oldValue, newValue) -> {
@ -90,9 +99,10 @@ public class SatispayForm extends PaymentMethodForm {
account.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE);
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.paymentMethod"),
Res.get(account.getPaymentMethod().getId()));
TextField field = addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.mobile"),
account.getMobileNr()).second;
field.setMouseTransparent(false);
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.account.owner"), account.getHolderName())
.second.setMouseTransparent(false);
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.mobile"), account.getMobileNr())
.second.setMouseTransparent(false);
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.currency"), account.getSingleTradeCurrency().getNameAndCode());
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.country"), account.getCountry().name);
addLimitations(true);
@ -101,6 +111,7 @@ public class SatispayForm extends PaymentMethodForm {
@Override
public void updateAllInputsValid() {
allInputsValid.set(isAccountNameValid()
&& inputValidator.validate(account.getHolderName()).isValid
&& inputValidator.validate(account.getMobileNr()).isValid);
}
}