X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FGetTimesAjaxPage.java;h=0be0c465a3eb7b868e7c55d5fe3739986aeea8a7;hb=bfe926f6fb3ef837e9641da51c5fce92aa260e75;hp=5711257c9a50e5fab12ab20242e6e16e0d4a8f0a;hpb=e42a8f16b2ed6c3650cb288abbf48932ef63d97b;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java index 5711257..0be0c46 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java @@ -120,55 +120,72 @@ public class GetTimesAjaxPage extends JsonPage { * @return The formatted age */ private Time getTime(long age) { + return getTime(webInterface, age); + } + + // + // STATIC METHODS + // + + /** + * Returns the formatted relative time for a given age. + * + * @param webInterface + * The Sone web interface (for l10n access) + * @param age + * The age to format (in milliseconds) + * @return The formatted age + */ + public static Time getTime(WebInterface webInterface, long age) { String text; long refresh; if (age < 0) { text = webInterface.getL10n().getDefaultString("View.Time.InTheFuture"); refresh = 5 * Time.MINUTE; - } else if (age < 30 * Time.SECOND) { + } else if (age < 20 * Time.SECOND) { text = webInterface.getL10n().getDefaultString("View.Time.AFewSecondsAgo"); - refresh = 5 * Time.SECOND; - } else if (age < 1 * Time.MINUTE) { - text = webInterface.getL10n().getString("View.Time.XSecondsAgo", "sec", String.valueOf((int) Digits.round(age / Time.SECOND, 10))); refresh = 10 * Time.SECOND; - } else if (age < 2 * Time.MINUTE) { + } else if (age < 45 * Time.SECOND) { + text = webInterface.getL10n().getString("View.Time.HalfAMinuteAgo"); + refresh = 20 * Time.SECOND; + } else if (age < 90 * Time.SECOND) { text = webInterface.getL10n().getString("View.Time.AMinuteAgo"); refresh = Time.MINUTE; } else if (age < 30 * Time.MINUTE) { - text = webInterface.getL10n().getString("View.Time.XMinutesAgo", "min", String.valueOf((int) Digits.round(age / Time.MINUTE, 1))); - refresh = Time.MINUTE; + text = webInterface.getL10n().getString("View.Time.XMinutesAgo", "min", String.valueOf((int) (Digits.round(age, Time.MINUTE) / Time.MINUTE))); + refresh = 1 * Time.MINUTE; } else if (age < 45 * Time.MINUTE) { text = webInterface.getL10n().getString("View.Time.HalfAnHourAgo"); refresh = 10 * Time.MINUTE; - } else if (age < 2 * Time.HOUR) { + } else if (age < 90 * Time.MINUTE) { text = webInterface.getL10n().getString("View.Time.AnHourAgo"); refresh = Time.HOUR; } else if (age < 21 * Time.HOUR) { - text = webInterface.getL10n().getString("View.Time.XHoursAgo", "hour", String.valueOf((int) Digits.round(age / Time.HOUR, 1))); + text = webInterface.getL10n().getString("View.Time.XHoursAgo", "hour", String.valueOf((int) (Digits.round(age, Time.HOUR) / Time.HOUR))); refresh = Time.HOUR; } else if (age < 42 * Time.HOUR) { text = webInterface.getL10n().getString("View.Time.ADayAgo"); refresh = Time.DAY; } else if (age < 6 * Time.DAY) { - text = webInterface.getL10n().getString("View.Time.XDaysAgo", "day", String.valueOf((int) Digits.round(age / Time.DAY, 1))); + text = webInterface.getL10n().getString("View.Time.XDaysAgo", "day", String.valueOf((int) (Digits.round(age, Time.DAY) / Time.DAY))); refresh = Time.DAY; } else if (age < 11 * Time.DAY) { text = webInterface.getL10n().getString("View.Time.AWeekAgo"); refresh = Time.DAY; } else if (age < 4 * Time.WEEK) { - text = webInterface.getL10n().getString("View.Time.XWeeksAgo", "week", String.valueOf((int) Digits.round(age / Time.WEEK, 1))); + text = webInterface.getL10n().getString("View.Time.XWeeksAgo", "week", String.valueOf((int) (Digits.round(age, Time.WEEK) / Time.WEEK))); refresh = Time.DAY; } else if (age < 6 * Time.WEEK) { text = webInterface.getL10n().getString("View.Time.AMonthAgo"); refresh = Time.DAY; } else if (age < 11 * Time.MONTH) { - text = webInterface.getL10n().getString("View.Time.XMonthsAgo", "month", String.valueOf((int) Digits.round(age / Time.MONTH, 1))); + text = webInterface.getL10n().getString("View.Time.XMonthsAgo", "month", String.valueOf((int) (Digits.round(age, Time.MONTH) / Time.MONTH))); refresh = Time.DAY; } else if (age < 18 * Time.MONTH) { text = webInterface.getL10n().getString("View.Time.AYearAgo"); refresh = Time.WEEK; } else { - text = webInterface.getL10n().getString("View.Time.XYearsAgo", "year", String.valueOf((int) Digits.round(age / Time.YEAR, 1))); + text = webInterface.getL10n().getString("View.Time.XYearsAgo", "year", String.valueOf((int) (Digits.round(age, Time.YEAR) / Time.YEAR))); refresh = Time.WEEK; } return new Time(text, refresh); @@ -179,7 +196,7 @@ public class GetTimesAjaxPage extends JsonPage { * * @author David ‘Bombe’ Roden */ - private static class Time { + public static class Time { /** Number of milliseconds in a second. */ private static final long SECOND = 1000; @@ -239,6 +256,14 @@ public class GetTimesAjaxPage extends JsonPage { return refresh; } + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return text; + } + } }