mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-23 15:00:30 +01:00
Merge branch 'fix-formatter-when-showSeconds-used' of https://github.com/ripcurlx/exchange into ripcurlx-fix-formatter-when-showSeconds-used
This commit is contained in:
commit
1ed3b86fe9
2 changed files with 36 additions and 49 deletions
|
@ -30,6 +30,7 @@ import io.bisq.core.offer.Offer;
|
|||
import io.bisq.core.offer.OfferPayload;
|
||||
import io.bisq.network.p2p.NodeAddress;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.time.DateUtils;
|
||||
import org.apache.commons.lang3.time.DurationFormatUtils;
|
||||
import org.bitcoinj.core.Coin;
|
||||
import org.bitcoinj.core.Monetary;
|
||||
|
@ -492,7 +493,7 @@ public class BSFormatter {
|
|||
}
|
||||
|
||||
public static String formatDurationAsWords(long durationMillis, boolean showSeconds) {
|
||||
String format;
|
||||
String format = "";
|
||||
String second = Res.get("time.second");
|
||||
String minute = Res.get("time.minute");
|
||||
String hour = Res.get("time.hour").toLowerCase();
|
||||
|
@ -501,55 +502,22 @@ public class BSFormatter {
|
|||
String hours = Res.get("time.hours");
|
||||
String minutes = Res.get("time.minutes");
|
||||
String seconds = Res.get("time.seconds");
|
||||
|
||||
if (durationMillis >= DateUtils.MILLIS_PER_DAY) {
|
||||
format = "d\' " + days + ", \'";
|
||||
}
|
||||
|
||||
if (showSeconds) {
|
||||
format = "d\' " + days + ", \'H\' " + hours + ", \'m\' " + minutes + ", \'s\' " + seconds + "\'";
|
||||
format += "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, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
format += "H\' " + hours + ", \'m\' " + minutes + "\'";
|
||||
|
||||
if (duration.length() != 0) {
|
||||
duration = duration.substring(1);
|
||||
}
|
||||
String duration = durationMillis > 0 ? DurationFormatUtils.formatDuration(durationMillis, format) : Res.get("formatter.tradePeriodOver");
|
||||
|
||||
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);
|
||||
if (duration.startsWith(" ,"))
|
||||
duration = duration.replace(" ,", "");
|
||||
else if (duration.startsWith(", "))
|
||||
duration = duration.replace(", ", "");
|
||||
if (duration.equals(""))
|
||||
duration = Res.get("formatter.tradePeriodOver");
|
||||
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();
|
||||
}
|
||||
|
||||
|
|
|
@ -28,16 +28,18 @@ import static org.junit.Assert.assertEquals;
|
|||
|
||||
public class BSFormatterTest {
|
||||
|
||||
private BSFormatter formatter;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
Locale.setDefault(new Locale("en", "US"));
|
||||
formatter = new BSFormatter();
|
||||
Res.setBaseCurrencyCode("BTC");
|
||||
Res.setBaseCurrencyName("Bitcoin");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsValid() {
|
||||
BSFormatter formatter = new BSFormatter();
|
||||
Res.setBaseCurrencyCode("BTC");
|
||||
Res.setBaseCurrencyName("Bitcoin");
|
||||
assertEquals("0 days", formatter.formatAccountAge(TimeUnit.HOURS.toMillis(23)));
|
||||
assertEquals("0 days", formatter.formatAccountAge(0));
|
||||
assertEquals("0 days", formatter.formatAccountAge(-1));
|
||||
|
@ -46,4 +48,21 @@ public class BSFormatterTest {
|
|||
assertEquals("30 days", formatter.formatAccountAge(TimeUnit.DAYS.toMillis(30)));
|
||||
assertEquals("60 days", formatter.formatAccountAge(TimeUnit.DAYS.toMillis(60)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFormatDurationAsWords() {
|
||||
long oneDay = TimeUnit.DAYS.toMillis(1);
|
||||
long oneHour = TimeUnit.HOURS.toMillis(1);
|
||||
long oneMinute = TimeUnit.MINUTES.toMillis(1);
|
||||
long oneSecond = TimeUnit.SECONDS.toMillis(1);
|
||||
|
||||
assertEquals("1 hour, 0 minutes", formatter.formatDurationAsWords(oneHour));
|
||||
assertEquals("1 day, 0 hours, 0 minutes", formatter.formatDurationAsWords(oneDay));
|
||||
assertEquals("2 days, 0 hours, 1 minute", formatter.formatDurationAsWords(oneDay * 2 + oneMinute));
|
||||
assertEquals("2 days, 0 hours, 2 minutes", formatter.formatDurationAsWords(oneDay * 2 + oneMinute * 2));
|
||||
assertEquals("1 hour, 0 minutes, 0 seconds", formatter.formatDurationAsWords(oneHour, true));
|
||||
assertEquals("1 hour, 0 minutes, 1 second", formatter.formatDurationAsWords(oneHour + oneSecond, true));
|
||||
assertEquals("1 hour, 0 minutes, 2 seconds", formatter.formatDurationAsWords(oneHour + oneSecond * 2, true));
|
||||
assertEquals("Trade period is over", formatter.formatDurationAsWords(0));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue