mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-07-30 02:08:58 -04:00
Fix bug with not rePublished offers. Update offerbook when offer gets removed. Add pref. language and currency to preferences
This commit is contained in:
parent
b1c4d7b636
commit
3222019480
13 changed files with 184 additions and 36 deletions
|
@ -119,7 +119,7 @@ public class CountryUtil {
|
|||
}
|
||||
|
||||
public static Country getDefaultCountry() {
|
||||
final Locale locale = new Locale(LanguageUtil.getDefaultLanguage(), getDefaultCountryCode());
|
||||
final Locale locale = Preferences.getDefaultLocale();
|
||||
String regionCode = getRegionCode(locale.getCountry());
|
||||
final Region region = new Region(regionCode, getRegionName(regionCode));
|
||||
return new Country(locale.getCountry(), locale.getDisplayCountry(), region);
|
||||
|
@ -205,7 +205,6 @@ public class CountryUtil {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public static String getDefaultCountryCode() {
|
||||
// might be set later in pref or config, so not use Preferences.getDefaultLocale() anywhere in the code
|
||||
return Preferences.getDefaultLocale().getCountry();
|
||||
|
|
|
@ -205,8 +205,8 @@ public class CurrencyUtil {
|
|||
}
|
||||
}
|
||||
|
||||
public static FiatCurrency getDefaultFiatCurrency() {
|
||||
return new FiatCurrency(getCurrencyByCountryCode(CountryUtil.getDefaultCountryCode()).getCurrency());
|
||||
public static TradeCurrency getDefaultTradeCurrency() {
|
||||
return Preferences.getDefaultTradeCurrency();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -52,7 +52,20 @@ public class OfferBookService {
|
|||
}
|
||||
|
||||
public void addOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
||||
boolean result = p2PService.addData(offer);
|
||||
doAddOffer(offer, resultHandler, errorMessageHandler, false);
|
||||
}
|
||||
|
||||
public void republishOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
||||
doAddOffer(offer, resultHandler, errorMessageHandler, true);
|
||||
}
|
||||
|
||||
private void doAddOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler, boolean rePublish) {
|
||||
boolean result;
|
||||
if (rePublish)
|
||||
result = p2PService.republishData(offer);
|
||||
else
|
||||
result = p2PService.addData(offer);
|
||||
|
||||
if (result) {
|
||||
log.trace("Add offer to network was successful. Offer = " + offer);
|
||||
resultHandler.handleResult();
|
||||
|
|
|
@ -146,7 +146,7 @@ public class OpenOfferManager {
|
|||
if (p2PNetworkReadyListener != null)
|
||||
p2PService.removeP2PServiceListener(p2PNetworkReadyListener);
|
||||
|
||||
long period = (long) (Offer.TTL * 0.8);
|
||||
long period = (long) (Offer.TTL * 0.8); // republish sufficiently before offer would expires
|
||||
TimerTask timerTask = new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
@ -165,7 +165,7 @@ public class OpenOfferManager {
|
|||
private void rePublishOffers() {
|
||||
if (!openOffers.isEmpty()) log.trace("rePublishOffers");
|
||||
for (OpenOffer openOffer : openOffers) {
|
||||
offerBookService.addOffer(openOffer.getOffer(),
|
||||
offerBookService.republishOffer(openOffer.getOffer(),
|
||||
() -> log.debug("Successful added offer to P2P network"),
|
||||
errorMessage -> log.error("Add offer to P2P network failed. " + errorMessage));
|
||||
//setupDepositPublishedListener(openOffer);
|
||||
|
|
|
@ -20,6 +20,7 @@ package io.bitsquare.user;
|
|||
import io.bitsquare.app.BitsquareEnvironment;
|
||||
import io.bitsquare.app.Version;
|
||||
import io.bitsquare.btc.BitcoinNetwork;
|
||||
import io.bitsquare.locale.CountryUtil;
|
||||
import io.bitsquare.locale.CurrencyUtil;
|
||||
import io.bitsquare.locale.TradeCurrency;
|
||||
import io.bitsquare.storage.Storage;
|
||||
|
@ -67,9 +68,16 @@ public class Preferences implements Serializable {
|
|||
return BTC_DENOMINATIONS;
|
||||
}
|
||||
|
||||
private transient static Locale defaultLocale = Locale.getDefault();
|
||||
|
||||
public static Locale getDefaultLocale() {
|
||||
//return new Locale("EN", "US");
|
||||
return Locale.getDefault();
|
||||
return defaultLocale;
|
||||
}
|
||||
|
||||
private transient static TradeCurrency defaultTradeCurrency = new TradeCurrency(CurrencyUtil.getCurrencyByCountryCode(CountryUtil.getDefaultCountryCode()).getCurrency().getCurrencyCode());
|
||||
|
||||
public static TradeCurrency getDefaultTradeCurrency() {
|
||||
return defaultTradeCurrency;
|
||||
}
|
||||
|
||||
transient private final Storage<Preferences> storage;
|
||||
|
@ -92,6 +100,8 @@ public class Preferences implements Serializable {
|
|||
private boolean autoSelectArbitrators = true;
|
||||
private Map<String, Boolean> showAgainMap;
|
||||
private boolean tacAccepted;
|
||||
private Locale preferredLocale;
|
||||
private TradeCurrency preferredTradeCurrency;
|
||||
|
||||
// Observable wrappers
|
||||
transient private final StringProperty btcDenominationProperty = new SimpleStringProperty(btcDenomination);
|
||||
|
@ -134,6 +144,11 @@ public class Preferences implements Serializable {
|
|||
autoSelectArbitrators = persisted.getAutoSelectArbitrators();
|
||||
showAgainMap = persisted.getShowAgainMap();
|
||||
tacAccepted = persisted.getTacAccepted();
|
||||
|
||||
preferredLocale = persisted.getPreferredLocale();
|
||||
defaultLocale = preferredLocale;
|
||||
preferredTradeCurrency = persisted.getPreferredTradeCurrency();
|
||||
defaultTradeCurrency = preferredTradeCurrency;
|
||||
} else {
|
||||
setTradeCurrencies(CurrencyUtil.getAllSortedCurrencies());
|
||||
tradeCurrencies = new ArrayList<>(tradeCurrenciesAsObservable);
|
||||
|
@ -148,6 +163,8 @@ public class Preferences implements Serializable {
|
|||
showAgainMap.put(PopupId.PAYMENT_SENT, true);
|
||||
showAgainMap.put(PopupId.PAYMENT_RECEIVED, true);
|
||||
|
||||
preferredLocale = getDefaultLocale();
|
||||
preferredTradeCurrency = getDefaultTradeCurrency();
|
||||
storage.queueUpForSave();
|
||||
}
|
||||
|
||||
|
@ -250,6 +267,19 @@ public class Preferences implements Serializable {
|
|||
storage.queueUpForSave();
|
||||
}
|
||||
|
||||
public void setPreferredLocale(Locale preferredLocale) {
|
||||
this.preferredLocale = preferredLocale;
|
||||
defaultLocale = preferredLocale;
|
||||
storage.queueUpForSave();
|
||||
}
|
||||
|
||||
public void setPreferredTradeCurrency(TradeCurrency preferredTradeCurrency) {
|
||||
this.preferredTradeCurrency = preferredTradeCurrency;
|
||||
defaultTradeCurrency = preferredTradeCurrency;
|
||||
storage.queueUpForSave();
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Getter
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -360,4 +390,12 @@ public class Preferences implements Serializable {
|
|||
public boolean getTacAccepted() {
|
||||
return tacAccepted;
|
||||
}
|
||||
|
||||
public Locale getPreferredLocale() {
|
||||
return preferredLocale;
|
||||
}
|
||||
|
||||
public TradeCurrency getPreferredTradeCurrency() {
|
||||
return preferredTradeCurrency;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,8 +102,11 @@ public class User implements Serializable {
|
|||
} else {
|
||||
accountID = String.valueOf(Math.abs(keyRing.getPubKeyRing().hashCode()));
|
||||
|
||||
acceptedLanguageLocaleCodes = new ArrayList<>(Arrays.asList(LanguageUtil.getDefaultLanguageLocaleAsCode(),
|
||||
LanguageUtil.getEnglishLanguageLocaleCode()));
|
||||
acceptedLanguageLocaleCodes.add(LanguageUtil.getDefaultLanguageLocaleAsCode());
|
||||
String english = LanguageUtil.getEnglishLanguageLocaleCode();
|
||||
if (!acceptedLanguageLocaleCodes.contains(english))
|
||||
acceptedLanguageLocaleCodes.add(english);
|
||||
|
||||
acceptedArbitrators = new ArrayList<>();
|
||||
}
|
||||
storage.queueUpForSave();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue