From f3da936c4204c357776b2da1cc248de4496182d5 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 6 Apr 2016 12:14:41 +0200 Subject: [PATCH] Update remaining time on minutes instead on seconds --- .../io/bitsquare/gui/main/MainViewModel.java | 1 - .../pendingtrades/PendingTradesViewModel.java | 2 +- .../pendingtrades/steps/TradeStepView.java | 1 - .../io/bitsquare/gui/util/BSFormatter.java | 72 ++++++++++++------- 4 files changed, 49 insertions(+), 27 deletions(-) diff --git a/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java index 3620ca0ee3..6db6eaa0a6 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java @@ -531,7 +531,6 @@ public class MainViewModel implements ViewModel { clock.addListener(new Clock.Listener() { @Override public void onSecondTick() { - updateTradePeriodState(); } @Override diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java index 8f549b2604..50b01b3ed1 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java @@ -176,7 +176,7 @@ public class PendingTradesViewModel extends ActivatableWithDataModel countries) { - return countries.stream().map(e -> e.name).collect(Collectors.joining(", ")); - } - - public String arbitratorAddressesToString(List nodeAddresses) { return nodeAddresses.stream().map(e -> e.getFullAddress()).collect(Collectors.joining(", ")); } @@ -352,21 +341,56 @@ public class BSFormatter { return input; } - public Date addBlocksToNowDate(long blocks) { - return new Date(new Date().getTime() + blocks * TimeUnit.MINUTES.toMillis(10)); + public String formatDurationAsWords(long durationMillis) { + return formatDurationAsWords(durationMillis, false); } - public String getDurationAsWords(long duration) { - return DurationFormatUtils.formatDurationWords(duration, true, true); - } - - public String getDaysHoursMinutes(Date startDate, Date endDate) { - try { - return DurationFormatUtils.formatDurationWords(endDate.getTime() - startDate.getTime(), true, true); - } catch (Throwable t) { - // in case we get a invalid duration we set swallow the exception - return ""; + public static String formatDurationAsWords(long durationMillis, boolean showSeconds) { + String format; + if (showSeconds) + format = "d\' days, \'H\' hours, \'m\' minutes, \'s\' seconds\'"; + else + format = "d\' days, \'H\' hours, \'m\' minutes\'"; + String duration = DurationFormatUtils.formatDuration(durationMillis, format); + String tmp; + duration = " " + duration; + tmp = StringUtils.replaceOnce(duration, " 0 days", ""); + if (tmp.length() != duration.length()) { + duration = tmp; + tmp = StringUtils.replaceOnce(tmp, " 0 hours", ""); + if (tmp.length() != duration.length()) { + tmp = StringUtils.replaceOnce(tmp, " 0 minutes", ""); + duration = tmp; + if (tmp.length() != tmp.length()) { + duration = StringUtils.replaceOnce(tmp, " 0 seconds", ""); + } + } } + + if (duration.length() != 0) { + duration = duration.substring(1); + } + + tmp = StringUtils.replaceOnce(duration, " 0 seconds", ""); + + if (tmp.length() != duration.length()) { + duration = tmp; + tmp = StringUtils.replaceOnce(tmp, " 0 minutes", ""); + if (tmp.length() != duration.length()) { + duration = tmp; + tmp = StringUtils.replaceOnce(tmp, " 0 hours", ""); + if (tmp.length() != duration.length()) { + duration = StringUtils.replaceOnce(tmp, " 0 days", ""); + } + } + } + + duration = " " + duration; + duration = StringUtils.replaceOnce(duration, " 1 seconds", " 1 second"); + duration = StringUtils.replaceOnce(duration, " 1 minutes", " 1 minute"); + duration = StringUtils.replaceOnce(duration, " 1 hours", " 1 hour"); + duration = StringUtils.replaceOnce(duration, " 1 days", " 1 day"); + return duration.trim(); }