package net.i2p.router.web;
import net.i2p.I2PAppContext;
import net.i2p.crypto.TrustedUpdate;
import net.i2p.data.DataHelper;
public class ConfigUpdateHelper extends HelperBase {
private boolean _dontInstall;
public ConfigUpdateHelper() {}
/** hook this so we can call dontInstall() once after getting a context */
@Override
public void setContextId(String contextId) {
super.setContextId(contextId);
_dontInstall = NewsFetcher.getInstance(_context).dontInstall();
}
public boolean canInstall() {
return !_dontInstall;
}
public boolean updateAvailable() {
return true;
}
public String getNewsURL() {
return getNewsURL(_context);
}
/** hack to replace the old news location with the new one, even if they have saved
the update page at some point */
public static String getNewsURL(I2PAppContext ctx) {
String url = ctx.getProperty(ConfigUpdateHandler.PROP_NEWS_URL);
if (url != null && !url.equals(ConfigUpdateHandler.OLD_DEFAULT_NEWS_URL))
return url;
else
return ConfigUpdateHandler.DEFAULT_NEWS_URL;
}
public String getUpdateURL() {
String url = _context.getProperty(ConfigUpdateHandler.PROP_UPDATE_URL);
if (url != null)
return url.replace(",", "\n");
else
return ConfigUpdateHandler.DEFAULT_UPDATE_URL;
}
public String getProxyHost() {
return _context.getProperty(ConfigUpdateHandler.PROP_PROXY_HOST, ConfigUpdateHandler.DEFAULT_PROXY_HOST);
}
public String getProxyPort() {
return _context.getProperty(ConfigUpdateHandler.PROP_PROXY_PORT, ConfigUpdateHandler.DEFAULT_PROXY_PORT);
}
public String getUpdateThroughProxy() {
String proxy = _context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY);
if (Boolean.valueOf(proxy).booleanValue())
return "";
else
return "";
}
public String getUpdateUnsigned() {
String foo = _context.getProperty(ConfigUpdateHandler.PROP_UPDATE_UNSIGNED);
if (Boolean.valueOf(foo).booleanValue())
return "";
else
return "";
}
private static final long PERIODS[] = new long[] { 12*60*60*1000l, 24*60*60*1000l, 48*60*60*1000l, -1l };
public String getRefreshFrequencySelectBox() {
String freq = _context.getProperty(ConfigUpdateHandler.PROP_REFRESH_FREQUENCY);
if (freq == null) freq = ConfigUpdateHandler.DEFAULT_REFRESH_FREQUENCY;
long ms = -1;
try {
ms = Long.parseLong(freq);
} catch (NumberFormatException nfe) {}
StringBuilder buf = new StringBuilder(256);
buf.append("\n");
return buf.toString();
}
/**
* Right now the jsp hides the whole select box if _dontInstall is true but this could change
*/
public String getUpdatePolicySelectBox() {
String policy = _context.getProperty(ConfigUpdateHandler.PROP_UPDATE_POLICY, ConfigUpdateHandler.DEFAULT_UPDATE_POLICY);
StringBuilder buf = new StringBuilder(256);
buf.append("\n");
return buf.toString();
}
public String getTrustedKeys() {
return new TrustedUpdate(_context).getTrustedKeysString();
}
public String getZipURL() {
return _context.getProperty(ConfigUpdateHandler.PROP_ZIP_URL, "");
}
public String getNewsStatus() {
return NewsFetcher.getInstance(_context).status();
}
}