diff --git a/core/src/main/java/bisq/core/trade/statistics/TradeStatisticsManager.java b/core/src/main/java/bisq/core/trade/statistics/TradeStatisticsManager.java index 83ae72b85b9..044018c018b 100644 --- a/core/src/main/java/bisq/core/trade/statistics/TradeStatisticsManager.java +++ b/core/src/main/java/bisq/core/trade/statistics/TradeStatisticsManager.java @@ -40,11 +40,14 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableSet; +import java.time.Instant; + import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; @@ -135,6 +138,24 @@ private void maybeDumpStatistics() { .collect(Collectors.toCollection(ArrayList::new)); cryptoCurrencyList.add(0, new CurrencyTuple(Res.getBaseCurrencyCode(), Res.getBaseCurrencyName(), 8)); jsonFileManager.writeToDiscThreaded(Utilities.objectToJson(cryptoCurrencyList), "crypto_currency_list"); + + Instant yearAgo = Instant.ofEpochSecond(Instant.now().getEpochSecond() - TimeUnit.DAYS.toSeconds(365)); + Set activeCurrencies = observableTradeStatisticsSet.stream() + .filter(e -> e.getDate().toInstant().isAfter(yearAgo)) + .map(p -> p.getCurrency()) + .collect(Collectors.toSet()); + + ArrayList activeFiatCurrencyList = fiatCurrencyList.stream() + .filter(e -> activeCurrencies.contains(e.code)) + .map(e -> new CurrencyTuple(e.code, e.name, 8)) + .collect(Collectors.toCollection(ArrayList::new)); + jsonFileManager.writeToDiscThreaded(Utilities.objectToJson(activeFiatCurrencyList), "active_fiat_currency_list"); + + ArrayList activeCryptoCurrencyList = cryptoCurrencyList.stream() + .filter(e -> activeCurrencies.contains(e.code)) + .map(e -> new CurrencyTuple(e.code, e.name, 8)) + .collect(Collectors.toCollection(ArrayList::new)); + jsonFileManager.writeToDiscThreaded(Utilities.objectToJson(activeCryptoCurrencyList), "active_crypto_currency_list"); } List list = observableTradeStatisticsSet.stream()