Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix problems with editing account names #6167

Merged
merged 3 commits into from Apr 27, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -41,18 +41,14 @@
@Slf4j
public abstract class BankAccountPayload extends CountryBasedPaymentAccountPayload implements PayloadWithHolderName {
protected String holderName = "";
@Nullable
protected String bankName;
@Nullable
protected String branchId;
@Nullable
protected String accountNr;
protected String bankName = "";
protected String branchId = "";
protected String accountNr = "";
@Nullable
protected String accountType;
@Nullable
protected String holderTaxId;
@Nullable
protected String bankId;
protected String bankId = "";
@Nullable
protected String nationalAccountId;

Expand Down
Expand Up @@ -46,20 +46,16 @@ public class CashDepositAccountPayload extends CountryBasedPaymentAccountPayload
private String holderName = "";
@Nullable
private String holderEmail;
@Nullable
private String bankName;
@Nullable
private String branchId;
@Nullable
private String accountNr;
private String bankName = "";
private String branchId = "";
private String accountNr = "";
@Nullable
private String accountType;
@Nullable
private String requirements;
@Nullable
private String holderTaxId;
@Nullable
private String bankId;
private String bankId = "";
@Nullable
protected String nationalAccountId;

Expand Down
Expand Up @@ -406,7 +406,7 @@ public void updateAllInputsValid() {
boolean result = isAccountNameValid()
&& paymentAccount.getSingleTradeCurrency() != null
&& getCountryBasedPaymentAccount().getCountry() != null
&& (holderNameInputTextField == null || holderNameInputTextField.getValidator().validate(bankAccountPayload.getHolderName()).isValid);
&& inputValidator.validate(bankAccountPayload.getHolderName()).isValid;

String countryCode = bankAccountPayload.getCountryCode();
result = getValidationResult(result, countryCode,
Expand Down
Expand Up @@ -454,8 +454,8 @@ public void updateAllInputsValid() {
boolean result = isAccountNameValid()
&& paymentAccount.getSingleTradeCurrency() != null
&& getCountryBasedPaymentAccount().getCountry() != null
&& holderNameInputTextField.getValidator().validate(cashDepositAccountPayload.getHolderName()).isValid
&& emailInputTextField.getValidator().validate(cashDepositAccountPayload.getHolderEmail()).isValid;
&& inputValidator.validate(cashDepositAccountPayload.getHolderName()).isValid
&& emailValidator.validate(cashDepositAccountPayload.getHolderEmail()).isValid;

String countryCode = cashDepositAccountPayload.getCountryCode();
result = getValidationResult(result, countryCode,
Expand Down
Expand Up @@ -10,6 +10,8 @@
import bisq.core.locale.BankUtil;
import bisq.core.locale.Res;
import bisq.core.payment.PaymentAccount;
import bisq.core.payment.payload.BankAccountPayload;
import bisq.core.payment.payload.CashDepositAccountPayload;
import bisq.core.payment.payload.CountryBasedPaymentAccountPayload;
import bisq.core.util.coin.CoinFormatter;
import bisq.core.util.validation.InputValidator;
Expand Down Expand Up @@ -136,26 +138,61 @@ void updateHolderIDInput(String countryCode, boolean requiresHolderId) {
}

void autoFillAccountTextFields(CountryBasedPaymentAccountPayload paymentAccountPayload) {


BankAccountPayload bankAccountPayload = null;
CashDepositAccountPayload cashDepositAccountPayload = null;
if (paymentAccountPayload instanceof BankAccountPayload) {
bankAccountPayload = (BankAccountPayload) paymentAccountPayload;
} else if (paymentAccountPayload instanceof CashDepositAccountPayload) {
cashDepositAccountPayload = (CashDepositAccountPayload) paymentAccountPayload;
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like it so much having those checks in the abstract class for specific implementations. I think it would be better to have a getBankId, getBranchId, getBankName and getAccountNr implementation in the CashDeposit and BankAccount forms WDYT?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in latest commit.

Code could be even more simplified when CashDepositAccountPayload extends BankAccountPayload - do you see any obstacles from doing it (in this pull request)?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think - let's keep it to a minimum for now. I'll test it now.

if (useCustomAccountNameToggleButton != null && !useCustomAccountNameToggleButton.isSelected()) {
String bankId = null;
String countryCode = paymentAccountPayload.getCountryCode();
if (countryCode == null)
countryCode = "";
if (BankUtil.isBankIdRequired(countryCode)) {
bankId = bankIdInputTextField.getText().trim();
if (bankAccountPayload != null) {
bankId = bankAccountPayload.getBankId();
} else if (cashDepositAccountPayload != null) {
bankId = cashDepositAccountPayload.getBankId();
} else {
bankId = bankIdInputTextField.getText().trim();
}
if (bankId.length() > 9)
bankId = StringUtils.abbreviate(bankId, 9);
} else if (BankUtil.isBranchIdRequired(countryCode)) {
bankId = branchIdInputTextField.getText().trim();
if (bankAccountPayload != null) {
bankId = bankAccountPayload.getBranchId();
} else if (cashDepositAccountPayload != null) {
bankId = cashDepositAccountPayload.getBranchId();
} else {
bankId = branchIdInputTextField.getText().trim();
}
if (bankId.length() > 9)
bankId = StringUtils.abbreviate(bankId, 9);
} else if (BankUtil.isBankNameRequired(countryCode)) {
bankId = bankNameInputTextField.getText().trim();
if (bankAccountPayload != null) {
bankId = bankAccountPayload.getBankName();
} else if (cashDepositAccountPayload != null) {
bankId = cashDepositAccountPayload.getBankName();
} else {
bankId = bankNameInputTextField.getText().trim();
}
if (bankId.length() > 9)
bankId = StringUtils.abbreviate(bankId, 9);
}

String accountNr = accountNrInputTextField.getText().trim();
String accountNr;
if (bankAccountPayload != null) {
accountNr = bankAccountPayload.getAccountNr();
} else if (cashDepositAccountPayload != null) {
accountNr = cashDepositAccountPayload.getAccountNr();
} else {
accountNr = accountNrInputTextField.getText().trim();
}
if (accountNr.length() > 9)
accountNr = StringUtils.abbreviate(accountNr, 9);

Expand Down
Expand Up @@ -165,6 +165,6 @@ protected void onCountrySelected(Country country) {

@Override
protected void autoFillNameTextField() {
autoFillAccountTextFields((CountryBasedPaymentAccountPayload) paymentAccount.getPaymentAccountPayload());
autoFillAccountTextFields((BankAccountPayload) paymentAccount.getPaymentAccountPayload());
}
}