From 845e3363acc7cc41b178624615c857f198a31faf Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Sat, 4 Nov 2017 14:48:55 -0500 Subject: [PATCH] Handle bridgeAddresses as nullable --- .../java/io/bisq/core/user/Preferences.java | 3 +- .../io/bisq/core/user/PreferencesPayload.java | 68 +++++++++---------- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/core/src/main/java/io/bisq/core/user/Preferences.java b/core/src/main/java/io/bisq/core/user/Preferences.java index af4a6941e5..d46064d452 100644 --- a/core/src/main/java/io/bisq/core/user/Preferences.java +++ b/core/src/main/java/io/bisq/core/user/Preferences.java @@ -176,7 +176,8 @@ public final class Preferences implements PersistedDataHost { setPreferredTradeCurrency(preferredTradeCurrency); setFiatCurrencies(prefPayload.getFiatCurrencies()); setCryptoCurrencies(prefPayload.getCryptoCurrencies()); - setBridgeAddresses(prefPayload.getBridgeAddresses()); + if (prefPayload.getBridgeAddresses() != null) + setBridgeAddresses(prefPayload.getBridgeAddresses()); } else { prefPayload = new PreferencesPayload(); diff --git a/core/src/main/java/io/bisq/core/user/PreferencesPayload.java b/core/src/main/java/io/bisq/core/user/PreferencesPayload.java index 95a5d14507..39f63ff6c7 100644 --- a/core/src/main/java/io/bisq/core/user/PreferencesPayload.java +++ b/core/src/main/java/io/bisq/core/user/PreferencesPayload.java @@ -67,7 +67,7 @@ public final class PreferencesPayload implements PersistableEnvelope { private PaymentAccount selectedPaymentAccountForCreateOffer; private boolean payFeeInBtc = true; @Nullable - private List bridgeAddresses = new ArrayList<>(); + private List bridgeAddresses; /////////////////////////////////////////////////////////////////////////////////////////// @@ -85,37 +85,36 @@ public final class PreferencesPayload implements PersistableEnvelope { @Override public Message toProtoMessage() { PB.PreferencesPayload.Builder builder = PB.PreferencesPayload.newBuilder() - .setUserLanguage(userLanguage) - .setUserCountry((PB.Country) userCountry.toProtoMessage()) - .addAllFiatCurrencies(fiatCurrencies.stream() - .map(fiatCurrency -> ((PB.TradeCurrency) fiatCurrency.toProtoMessage())) - .collect(Collectors.toList())) - .addAllCryptoCurrencies(cryptoCurrencies.stream() - .map(cryptoCurrency -> ((PB.TradeCurrency) cryptoCurrency.toProtoMessage())) - .collect(Collectors.toList())) - .setBlockChainExplorerMainNet((PB.BlockChainExplorer) blockChainExplorerMainNet.toProtoMessage()) - .setBlockChainExplorerTestNet((PB.BlockChainExplorer) blockChainExplorerTestNet.toProtoMessage()) - .setBsqBlockChainExplorer((PB.BlockChainExplorer) bsqBlockChainExplorer.toProtoMessage()) - .setAutoSelectArbitrators(autoSelectArbitrators) - .putAllDontShowAgainMap(dontShowAgainMap) - .setTacAccepted(tacAccepted) - .setUseTorForBitcoinJ(useTorForBitcoinJ) - .setShowOwnOffersInOfferBook(showOwnOffersInOfferBook) - .setWithdrawalTxFeeInBytes(withdrawalTxFeeInBytes) - .setUseCustomWithdrawalTxFee(useCustomWithdrawalTxFee) - .setMaxPriceDistanceInPercent(maxPriceDistanceInPercent) - .setTradeStatisticsTickUnitIndex(tradeStatisticsTickUnitIndex) - .setResyncSpvRequested(resyncSpvRequested) - .setSortMarketCurrenciesNumerically(sortMarketCurrenciesNumerically) - .setUsePercentageBasedPrice(usePercentageBasedPrice) - .putAllPeerTagMap(peerTagMap) - .setBitcoinNodes(bitcoinNodes) - .addAllIgnoreTradersList(ignoreTradersList) - .setDirectoryChooserPath(directoryChooserPath) - .setBuyerSecurityDepositAsLong(buyerSecurityDepositAsLong) - .setUseAnimations(useAnimations) - .setPayFeeInBtc(payFeeInBtc); - Optional.ofNullable(bridgeAddresses).ifPresent(builder::addAllBridgeAddresses); + .setUserLanguage(userLanguage) + .setUserCountry((PB.Country) userCountry.toProtoMessage()) + .addAllFiatCurrencies(fiatCurrencies.stream() + .map(fiatCurrency -> ((PB.TradeCurrency) fiatCurrency.toProtoMessage())) + .collect(Collectors.toList())) + .addAllCryptoCurrencies(cryptoCurrencies.stream() + .map(cryptoCurrency -> ((PB.TradeCurrency) cryptoCurrency.toProtoMessage())) + .collect(Collectors.toList())) + .setBlockChainExplorerMainNet((PB.BlockChainExplorer) blockChainExplorerMainNet.toProtoMessage()) + .setBlockChainExplorerTestNet((PB.BlockChainExplorer) blockChainExplorerTestNet.toProtoMessage()) + .setBsqBlockChainExplorer((PB.BlockChainExplorer) bsqBlockChainExplorer.toProtoMessage()) + .setAutoSelectArbitrators(autoSelectArbitrators) + .putAllDontShowAgainMap(dontShowAgainMap) + .setTacAccepted(tacAccepted) + .setUseTorForBitcoinJ(useTorForBitcoinJ) + .setShowOwnOffersInOfferBook(showOwnOffersInOfferBook) + .setWithdrawalTxFeeInBytes(withdrawalTxFeeInBytes) + .setUseCustomWithdrawalTxFee(useCustomWithdrawalTxFee) + .setMaxPriceDistanceInPercent(maxPriceDistanceInPercent) + .setTradeStatisticsTickUnitIndex(tradeStatisticsTickUnitIndex) + .setResyncSpvRequested(resyncSpvRequested) + .setSortMarketCurrenciesNumerically(sortMarketCurrenciesNumerically) + .setUsePercentageBasedPrice(usePercentageBasedPrice) + .putAllPeerTagMap(peerTagMap) + .setBitcoinNodes(bitcoinNodes) + .addAllIgnoreTradersList(ignoreTradersList) + .setDirectoryChooserPath(directoryChooserPath) + .setBuyerSecurityDepositAsLong(buyerSecurityDepositAsLong) + .setUseAnimations(useAnimations) + .setPayFeeInBtc(payFeeInBtc); Optional.ofNullable(backupDirectory).ifPresent(builder::setBackupDirectory); Optional.ofNullable(preferredTradeCurrency).ifPresent(e -> builder.setPreferredTradeCurrency((PB.TradeCurrency) e.toProtoMessage())); Optional.ofNullable(offerBookChartScreenCurrencyCode).ifPresent(builder::setOfferBookChartScreenCurrencyCode); @@ -123,7 +122,8 @@ public final class PreferencesPayload implements PersistableEnvelope { Optional.ofNullable(buyScreenCurrencyCode).ifPresent(builder::setBuyScreenCurrencyCode); Optional.ofNullable(sellScreenCurrencyCode).ifPresent(builder::setSellScreenCurrencyCode); Optional.ofNullable(selectedPaymentAccountForCreateOffer).ifPresent( - account -> builder.setSelectedPaymentAccountForCreateOffer(selectedPaymentAccountForCreateOffer.toProtoMessage())); + account -> builder.setSelectedPaymentAccountForCreateOffer(selectedPaymentAccountForCreateOffer.toProtoMessage())); + Optional.ofNullable(bridgeAddresses).ifPresent(builder::addAllBridgeAddresses); return PB.PersistableEnvelope.newBuilder().setPreferencesPayload(builder).build(); } @@ -173,6 +173,6 @@ public final class PreferencesPayload implements PersistableEnvelope { proto.getUseAnimations(), paymentAccount, proto.getPayFeeInBtc(), - proto.getBridgeAddressesList()); + proto.getBridgeAddressesList().isEmpty() ? null : new ArrayList<>(proto.getBridgeAddressesList())); } }