Merge branch 'relative-timestamps-150' into next
[Sone.git] / src / main / java / net / pterodactylus / sone / web / ajax / GetTimesAjaxPage.java
index 5711257..f90806a 100644 (file)
@@ -120,27 +120,44 @@ 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;
+                       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) {
@@ -179,7 +196,7 @@ public class GetTimesAjaxPage extends JsonPage {
         *
         * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
         */
-       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;
+               }
+
        }
 
 }