diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java index 36b7e90210..dda5eb5e03 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SummaryBarRenderer.java @@ -16,6 +16,7 @@ import net.i2p.data.DataHelper; import net.i2p.router.RouterContext; import net.i2p.router.news.NewsEntry; import net.i2p.router.news.NewsManager; +import net.i2p.router.web.ConfigUpdateHandler; import net.i2p.router.web.CSSHelper; import net.i2p.router.web.Messages; import net.i2p.router.web.NavHelper; @@ -974,11 +975,6 @@ class SummaryBarRenderer { StringBuilder buf = new StringBuilder(512); String consoleNonce = CSSHelper.getNonce(); if (consoleNonce != null) { - // Set up title and pre-headings stuff. - //buf.append("

") - buf.append("

") - .append(_t("News & Updates")) - .append("


\n"); // Get news content. List entries = Collections.emptyList(); ClientAppManager cmgr = _context.clientAppManager(); @@ -988,18 +984,33 @@ class SummaryBarRenderer { entries = nmgr.getEntries(); } if (!entries.isEmpty()) { - buf.append("\n"); DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT); // the router sets the JVM time zone to UTC but saves the original here so we can get it fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context)); int i = 0; // show a min of 1, max of 3, none older than 60 days over min - final int min = 1; + // Except, if news fetching is disabled, min is 0 and oldest is 7 days. + // We still show news even if disabled, because the user could click it manually + String freq = _context.getProperty(ConfigUpdateHandler.PROP_REFRESH_FREQUENCY, + ConfigUpdateHandler.DEFAULT_REFRESH_FREQUENCY); + long ms = ConfigUpdateHandler.DEFAULT_REFRESH_FREQ; + try { + ms = Long.parseLong(freq); + } catch (NumberFormatException nfe) {} + final int min = (ms > 0) ? 1 : 0; final int max = 3; + final long age = (ms > 0) ? 60*24*60*60*1000L : 7*24*60*60*1000L; + final long oldest = _context.clock().now() - age; for (NewsEntry entry : entries) { if (i >= min && entry.updated > 0 && - entry.updated < _context.clock().now() - 60*24*60*60*1000L) + entry.updated < oldest) break; + if (i == 0) { + // Set up title and pre-headings stuff. + buf.append("

") + .append(_t("News & Updates")) + .append("


\n
\n"); + } buf.append("
= max) break; } - buf.append("
\n"); - } else { - buf.append("
") - .append(_t("none")) - .append("
"); + if (i > 0) + buf.append("\n
\n"); } - // Add post-headings stuff. - //buf.append("") - //.append(_t("Show all news")) - //.append("\n"); - buf.append("\n"); } return buf.toString(); }