diff --git a/core/src/main/java/haveno/core/locale/CurrencyUtil.java b/core/src/main/java/haveno/core/locale/CurrencyUtil.java index c94d55c70b..09783b7580 100644 --- a/core/src/main/java/haveno/core/locale/CurrencyUtil.java +++ b/core/src/main/java/haveno/core/locale/CurrencyUtil.java @@ -93,7 +93,7 @@ public class CurrencyUtil { public static Collection getAllSortedFiatCurrencies(Comparator comparator) { return getAllSortedTraditionalCurrencies(comparator).stream() .filter(currency -> CurrencyUtil.isFiatCurrency(currency.getCode())) - .collect(Collectors.toList()); // sorted by currency name + .collect(Collectors.toList()); // sorted by currency name } public static List getAllFiatCurrencies() { @@ -105,11 +105,11 @@ public class CurrencyUtil { public static List getAllSortedFiatCurrencies() { return getAllSortedTraditionalCurrencies().stream() .filter(currency -> CurrencyUtil.isFiatCurrency(currency.getCode())) - .collect(Collectors.toList()); // sorted by currency name + .collect(Collectors.toList()); // sorted by currency name } public static Collection getAllSortedTraditionalCurrencies() { - return traditionalCurrencyMapSupplier.get().values(); // sorted by currency name + return traditionalCurrencyMapSupplier.get().values(); // sorted by currency name } public static List getAllTraditionalCurrencies() { diff --git a/desktop/src/main/java/haveno/desktop/util/CurrencyList.java b/desktop/src/main/java/haveno/desktop/util/CurrencyList.java index 88bef5ab1c..17186603e8 100644 --- a/desktop/src/main/java/haveno/desktop/util/CurrencyList.java +++ b/desktop/src/main/java/haveno/desktop/util/CurrencyList.java @@ -65,6 +65,7 @@ public class CurrencyList { private List getPartitionedSortedItems(List currencies) { Map tradesPerCurrency = countTrades(currencies); + List fiatCurrencies = new ArrayList<>(); List traditionalCurrencies = new ArrayList<>(); List cryptoCurrencies = new ArrayList<>(); @@ -73,7 +74,9 @@ public class CurrencyList { Integer count = entry.getValue(); CurrencyListItem item = new CurrencyListItem(currency, count); - if (predicates.isTraditionalCurrency(currency)) { + if (predicates.isFiatCurrency(currency)) { + fiatCurrencies.add(item); + } else if (predicates.isTraditionalCurrency(currency)) { traditionalCurrencies.add(item); } @@ -83,10 +86,12 @@ public class CurrencyList { } Comparator comparator = getComparator(); + fiatCurrencies.sort(comparator); traditionalCurrencies.sort(comparator); cryptoCurrencies.sort(comparator); List result = new ArrayList<>(); + result.addAll(fiatCurrencies); result.addAll(traditionalCurrencies); result.addAll(cryptoCurrencies); diff --git a/desktop/src/main/java/haveno/desktop/util/CurrencyPredicates.java b/desktop/src/main/java/haveno/desktop/util/CurrencyPredicates.java index a201bd6f36..15449dcb87 100644 --- a/desktop/src/main/java/haveno/desktop/util/CurrencyPredicates.java +++ b/desktop/src/main/java/haveno/desktop/util/CurrencyPredicates.java @@ -25,6 +25,10 @@ class CurrencyPredicates { return CurrencyUtil.isCryptoCurrency(currency.getCode()); } + boolean isFiatCurrency(TradeCurrency currency) { + return CurrencyUtil.isFiatCurrency(currency.getCode()); + } + boolean isTraditionalCurrency(TradeCurrency currency) { return CurrencyUtil.isTraditionalCurrency(currency.getCode()); }