mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-08-10 07:30:05 -04:00
refactor offer tabs to fiat, bitcoin, other (with gold and silver)
This commit is contained in:
parent
a31b73d676
commit
5aba26ff82
36 changed files with 204 additions and 148 deletions
|
@ -73,6 +73,18 @@ public class CurrencyUtil {
|
|||
CurrencyUtil.baseCurrencyCode = baseCurrencyCode;
|
||||
}
|
||||
|
||||
public static Collection<TraditionalCurrency> getAllSortedFiatCurrencies(Comparator comparator) {
|
||||
return getAllSortedTraditionalCurrencies(comparator).stream()
|
||||
.filter(currency -> CurrencyUtil.isFiatCurrency(currency.getCode()))
|
||||
.collect(Collectors.toList()); // sorted by currency name
|
||||
}
|
||||
|
||||
public static List<TradeCurrency> getAllFiatCurrencies() {
|
||||
return getAllTraditionalCurrencies().stream()
|
||||
.filter(currency -> CurrencyUtil.isFiatCurrency(currency.getCode()))
|
||||
.collect(Collectors.toList()); // sorted by currency name
|
||||
}
|
||||
|
||||
public static Collection<TraditionalCurrency> getAllSortedTraditionalCurrencies() {
|
||||
return traditionalCurrencyMapSupplier.get().values(); // sorted by currency name
|
||||
}
|
||||
|
@ -98,8 +110,7 @@ public class CurrencyUtil {
|
|||
.collect(Collectors.toMap(TradeCurrency::getCode, Function.identity(), (x, y) -> x, LinkedHashMap::new));
|
||||
}
|
||||
|
||||
public static List<TraditionalCurrency> getMainTraditionalCurrencies() {
|
||||
TradeCurrency defaultTradeCurrency = getDefaultTradeCurrency();
|
||||
public static List<TraditionalCurrency> getMainFiatCurrencies() {
|
||||
List<TraditionalCurrency> list = new ArrayList<>();
|
||||
list.add(new TraditionalCurrency("USD"));
|
||||
list.add(new TraditionalCurrency("EUR"));
|
||||
|
@ -109,18 +120,28 @@ public class CurrencyUtil {
|
|||
list.add(new TraditionalCurrency("RUB"));
|
||||
list.add(new TraditionalCurrency("INR"));
|
||||
list.add(new TraditionalCurrency("NGN"));
|
||||
postProcessTraditionalCurrenciesList(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
public static List<TraditionalCurrency> getMainTraditionalCurrencies() {
|
||||
List<TraditionalCurrency> list = getMainFiatCurrencies();
|
||||
list.add(new TraditionalCurrency("XAG"));
|
||||
list.add(new TraditionalCurrency("XAU"));
|
||||
postProcessTraditionalCurrenciesList(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
private static void postProcessTraditionalCurrenciesList(List<TraditionalCurrency> list) {
|
||||
list.sort(TradeCurrency::compareTo);
|
||||
|
||||
TradeCurrency defaultTradeCurrency = getDefaultTradeCurrency();
|
||||
TraditionalCurrency defaultTraditionalCurrency =
|
||||
defaultTradeCurrency instanceof TraditionalCurrency ? (TraditionalCurrency) defaultTradeCurrency : null;
|
||||
if (defaultTraditionalCurrency != null && list.contains(defaultTraditionalCurrency)) {
|
||||
list.remove(defaultTradeCurrency);
|
||||
list.add(0, defaultTraditionalCurrency);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static Collection<CryptoCurrency> getAllSortedCryptoCurrencies() {
|
||||
|
|
|
@ -30,7 +30,7 @@ import java.util.List;
|
|||
|
||||
public final class CashDepositAccount extends CountryBasedPaymentAccount implements SameCountryRestrictedBankAccount {
|
||||
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllTraditionalCurrencies();
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllFiatCurrencies();
|
||||
|
||||
public CashDepositAccount() {
|
||||
super(PaymentMethod.CASH_DEPOSIT);
|
||||
|
|
|
@ -32,7 +32,7 @@ import java.util.List;
|
|||
@EqualsAndHashCode(callSuper = true)
|
||||
public final class NationalBankAccount extends CountryBasedPaymentAccount implements SameCountryRestrictedBankAccount {
|
||||
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllTraditionalCurrencies();
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllFiatCurrencies();
|
||||
|
||||
public NationalBankAccount() {
|
||||
super(PaymentMethod.NATIONAL_BANK);
|
||||
|
|
|
@ -117,6 +117,10 @@ public abstract class PaymentAccount implements PersistablePayload {
|
|||
paymentAccountPayload = payload;
|
||||
}
|
||||
|
||||
public boolean isFiat() {
|
||||
return getSingleTradeCurrency() == null || CurrencyUtil.isFiatCurrency(getSingleTradeCurrency().getCode()); // TODO: check if trade currencies contain fiat
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// PROTO BUFFER
|
||||
|
|
|
@ -32,7 +32,7 @@ import java.util.List;
|
|||
@EqualsAndHashCode(callSuper = true)
|
||||
public final class SameBankAccount extends CountryBasedPaymentAccount implements BankNameRestrictedBankAccount, SameCountryRestrictedBankAccount {
|
||||
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllTraditionalCurrencies();
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllFiatCurrencies();
|
||||
|
||||
public SameBankAccount() {
|
||||
super(PaymentMethod.SAME_BANK);
|
||||
|
|
|
@ -32,7 +32,7 @@ import java.util.List;
|
|||
@EqualsAndHashCode(callSuper = true)
|
||||
public final class SpecificBanksAccount extends CountryBasedPaymentAccount implements BankNameRestrictedBankAccount, SameCountryRestrictedBankAccount {
|
||||
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllTraditionalCurrencies();
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllFiatCurrencies();
|
||||
|
||||
public SpecificBanksAccount() {
|
||||
super(PaymentMethod.SPECIFIC_BANKS);
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
package haveno.core.payment;
|
||||
|
||||
import haveno.core.api.model.PaymentAccountFormField;
|
||||
import haveno.core.locale.CurrencyUtil;
|
||||
import haveno.core.locale.TradeCurrency;
|
||||
import haveno.core.payment.payload.PaymentAccountPayload;
|
||||
import haveno.core.payment.payload.PaymentMethod;
|
||||
|
@ -28,13 +29,12 @@ import lombok.NonNull;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static haveno.core.locale.CurrencyUtil.getAllSortedTraditionalCurrencies;
|
||||
import static java.util.Comparator.comparing;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public final class SwiftAccount extends PaymentAccount {
|
||||
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = new ArrayList<>(getAllSortedTraditionalCurrencies(comparing(TradeCurrency::getCode)));
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = new ArrayList<>(CurrencyUtil.getAllSortedFiatCurrencies(comparing(TradeCurrency::getCode)));
|
||||
|
||||
private static final List<PaymentAccountFormField.FieldId> INPUT_FIELD_IDS = List.of(
|
||||
PaymentAccountFormField.FieldId.ACCOUNT_NAME,
|
||||
|
|
|
@ -29,7 +29,7 @@ import java.util.List;
|
|||
|
||||
public final class WesternUnionAccount extends CountryBasedPaymentAccount {
|
||||
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllTraditionalCurrencies();
|
||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = CurrencyUtil.getAllFiatCurrencies();
|
||||
|
||||
public WesternUnionAccount() {
|
||||
super(PaymentMethod.WESTERN_UNION);
|
||||
|
|
|
@ -387,6 +387,7 @@ public final class PaymentMethod implements PersistablePayload, Comparable<Payme
|
|||
private final long maxTradeLimit;
|
||||
|
||||
// list of asset codes the payment method supports
|
||||
@Getter
|
||||
private List<String> supportedAssetCodes;
|
||||
|
||||
|
||||
|
|
|
@ -225,7 +225,7 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid
|
|||
GlobalSettings.setUseAnimations(prefPayload.isUseAnimations());
|
||||
TradeCurrency preferredTradeCurrency = checkNotNull(prefPayload.getPreferredTradeCurrency(), "preferredTradeCurrency must not be null");
|
||||
setPreferredTradeCurrency(preferredTradeCurrency);
|
||||
setFiatCurrencies(prefPayload.getTraditionalCurrencies());
|
||||
setTraditionalCurrencies(prefPayload.getTraditionalCurrencies());
|
||||
setCryptoCurrencies(prefPayload.getCryptoCurrencies());
|
||||
GlobalSettings.setDefaultTradeCurrency(preferredTradeCurrency);
|
||||
|
||||
|
@ -255,7 +255,7 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid
|
|||
}
|
||||
|
||||
prefPayload.setPreferredTradeCurrency(preferredTradeCurrency);
|
||||
setFiatCurrencies(CurrencyUtil.getMainTraditionalCurrencies());
|
||||
setTraditionalCurrencies(CurrencyUtil.getMainFiatCurrencies());
|
||||
setCryptoCurrencies(CurrencyUtil.getMainCryptoCurrencies());
|
||||
|
||||
BaseCurrencyNetwork baseCurrencyNetwork = Config.baseCurrencyNetwork();
|
||||
|
@ -608,9 +608,9 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid
|
|||
requestPersistence();
|
||||
}
|
||||
|
||||
private void setFiatCurrencies(List<TraditionalCurrency> currencies) {
|
||||
public void setTraditionalCurrencies(List<TraditionalCurrency> currencies) {
|
||||
traditionalCurrenciesAsObservable.setAll(currencies.stream()
|
||||
.map(fiatCurrency -> new TraditionalCurrency(fiatCurrency.getCurrency()))
|
||||
.map(traditionalCurrency -> new TraditionalCurrency(traditionalCurrency.getCurrency()))
|
||||
.distinct().collect(Collectors.toList()));
|
||||
requestPersistence();
|
||||
}
|
||||
|
@ -909,7 +909,7 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid
|
|||
|
||||
void setPayFeeInXmr(boolean payFeeInXmr);
|
||||
|
||||
void setFiatCurrencies(List<TraditionalCurrency> currencies);
|
||||
void setTraditionalCurrencies(List<TraditionalCurrency> currencies);
|
||||
|
||||
void setCryptoCurrencies(List<CryptoCurrency> currencies);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue