I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit bfda22ad authored by jrandom's avatar jrandom Committed by zzz
Browse files

* persist and honor the configuration option "visible" (default=true)

* every 30s check to make sure the icon is [not] visible (useful for broken OSes that do stupid things when you start systray4j before logging in)
* go to "/index.jsp" rather than just "/" (avoids a silly redirect)
parent b888f176
No related branches found
No related tags found
No related merge requests found
...@@ -18,6 +18,8 @@ import snoozesoft.systray4j.SysTrayMenuIcon; ...@@ -18,6 +18,8 @@ import snoozesoft.systray4j.SysTrayMenuIcon;
import snoozesoft.systray4j.SysTrayMenuItem; import snoozesoft.systray4j.SysTrayMenuItem;
import snoozesoft.systray4j.SysTrayMenuListener; import snoozesoft.systray4j.SysTrayMenuListener;
import net.i2p.util.SimpleTimer;
/** /**
* A system tray control for launching the I2P router console. * A system tray control for launching the I2P router console.
* *
...@@ -31,6 +33,7 @@ public class SysTray implements SysTrayMenuListener { ...@@ -31,6 +33,7 @@ public class SysTray implements SysTrayMenuListener {
private static Frame _frame; private static Frame _frame;
private static SysTray _instance; private static SysTray _instance;
private static String _portString; private static String _portString;
private static boolean _showIcon;
private static UrlLauncher _urlLauncher = new UrlLauncher(); private static UrlLauncher _urlLauncher = new UrlLauncher();
static { static {
...@@ -41,9 +44,10 @@ public class SysTray implements SysTrayMenuListener { ...@@ -41,9 +44,10 @@ public class SysTray implements SysTrayMenuListener {
_browserString = _configFile.getProperty("browser", "default"); _browserString = _configFile.getProperty("browser", "default");
_portString = _configFile.getProperty("port", "7657"); _portString = _configFile.getProperty("port", "7657");
_showIcon = Boolean.valueOf(_configFile.getProperty("visible", "true")).booleanValue();
if (!(new File("router.config")).exists()) if (!(new File("router.config")).exists())
openRouterConsole("http://localhost:" + _portString + "/"); openRouterConsole("http://localhost:" + _portString + "/index.jsp");
if (System.getProperty("os.name").startsWith("Windows")) if (System.getProperty("os.name").startsWith("Windows"))
_instance = new SysTray(); _instance = new SysTray();
...@@ -58,6 +62,15 @@ public class SysTray implements SysTrayMenuListener { ...@@ -58,6 +62,15 @@ public class SysTray implements SysTrayMenuListener {
private SysTray() { private SysTray() {
_sysTrayMenuIcon.addSysTrayMenuListener(this); _sysTrayMenuIcon.addSysTrayMenuListener(this);
createSysTrayMenu(); createSysTrayMenu();
SimpleTimer.getInstance().addEvent(new RefreshDisplayEvent(), REFRESH_DISPLAY_FREQUENCY);
}
private static final long REFRESH_DISPLAY_FREQUENCY = 30*1000;
private class RefreshDisplayEvent implements SimpleTimer.TimedEvent {
public void timeReached() {
refreshDisplay();
SimpleTimer.getInstance().addEvent(RefreshDisplayEvent.this, REFRESH_DISPLAY_FREQUENCY);
}
} }
public static synchronized SysTray getInstance() { public static synchronized SysTray getInstance() {
...@@ -105,14 +118,23 @@ public class SysTray implements SysTrayMenuListener { ...@@ -105,14 +118,23 @@ public class SysTray implements SysTrayMenuListener {
_configFile.setProperty("browser", browser); _configFile.setProperty("browser", browser);
} }
public void refreshDisplay() {
if (_showIcon)
_sysTrayMenu.showIcon();
else
_sysTrayMenu.hideIcon();
}
public void hide() { public void hide() {
_configFile.setProperty("visible", "false");
_showIcon = false;
_sysTrayMenu.hideIcon(); _sysTrayMenu.hideIcon();
} }
public void iconLeftClicked(SysTrayMenuEvent e) {} public void iconLeftClicked(SysTrayMenuEvent e) {}
public void iconLeftDoubleClicked(SysTrayMenuEvent e) { public void iconLeftDoubleClicked(SysTrayMenuEvent e) {
openRouterConsole("http://localhost:" + _portString + "/"); openRouterConsole("http://localhost:" + _portString + "/index.jsp");
} }
public void menuItemSelected(SysTrayMenuEvent e) { public void menuItemSelected(SysTrayMenuEvent e) {
...@@ -133,11 +155,13 @@ public class SysTray implements SysTrayMenuListener { ...@@ -133,11 +155,13 @@ public class SysTray implements SysTrayMenuListener {
if (!(browser = promptForBrowser("Select browser")).equals("nullnull")) if (!(browser = promptForBrowser("Select browser")).equals("nullnull"))
setBrowser(browser); setBrowser(browser);
} else if (e.getActionCommand().equals("openconsole")) { } else if (e.getActionCommand().equals("openconsole")) {
openRouterConsole("http://localhost:" + _portString + "/"); openRouterConsole("http://localhost:" + _portString + "/index.jsp");
} }
} }
public void show() { public void show() {
_configFile.setProperty("visible", "true");
_showIcon = true;
_sysTrayMenu.showIcon(); _sysTrayMenu.showIcon();
} }
...@@ -149,5 +173,6 @@ public class SysTray implements SysTrayMenuListener { ...@@ -149,5 +173,6 @@ public class SysTray implements SysTrayMenuListener {
// _sysTrayMenu.addSeparator(); // _sysTrayMenu.addSeparator();
_sysTrayMenu.addItem(_itemSelectBrowser); _sysTrayMenu.addItem(_itemSelectBrowser);
_sysTrayMenu.addItem(_itemOpenConsole); _sysTrayMenu.addItem(_itemOpenConsole);
refreshDisplay();
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment