diff --git a/res/values/strings.xml b/res/values/strings.xml index 00891cf7e6925949935249ed7dcfff1760e14268..d9b8d52be329bf1e64a765f6d3a5d60b10a13eb2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -53,6 +53,11 @@ <string name="netdb_routers_empty">No routers in your NetDB.</string> <string name="netdb_leases_empty">No LeaseSets in your NetDB.</string> + <string name="notification_status_bw">Bandwidth: %1$s KBps down / %2$s KBps up</string> + <string name="notification_status_peers">Peers: %1$d active, %2$d known</string> + <string name="notification_status_expl">Exploratory tunnels: %1$d/%2$d</string> + <string name="notification_status_client">Client tunnels: %1$d/%2$d</string> + <string name="menu_settings">Settings</string> <string name="settings_enable">Enable</string> <string name="settings_desc_subscriptions">Subscription URLs</string> diff --git a/src/net/i2p/android/router/service/RouterService.java b/src/net/i2p/android/router/service/RouterService.java index de246ae5dca570cb1164b75b5cdf1355cbee1c72..4104d872d068de7d874b86c8004cd005965a82f2 100644 --- a/src/net/i2p/android/router/service/RouterService.java +++ b/src/net/i2p/android/router/service/RouterService.java @@ -13,6 +13,8 @@ import java.text.DecimalFormat; import java.util.List; import java.util.Properties; import java.util.Random; + +import net.i2p.android.router.R; import net.i2p.android.router.binder.RouterBinder; import net.i2p.android.router.receiver.I2PReceiver; import net.i2p.android.router.util.Util; @@ -345,6 +347,7 @@ public class RouterService extends Service { _handler.postDelayed(this, 15 * 1000); } } + private String _currTitle; private boolean _hadTunnels; private void updateStatus(RouterContext ctx) { @@ -367,25 +370,33 @@ public class RouterService extends Service { fmt = new DecimalFormat("#0.00"); } - String status = - "I2P " - + active + '/' + known + " peers connected"; + String text = + getResources().getString(R.string.notification_status_bw, + fmt.format(inBW), fmt.format(outBW)); - String details = - fmt.format(inBW) + '/' + fmt.format(outBW) + " KBps" - + "; Expl " + inEx + '/' + outEx - + "; Client " + inCl + '/' + outCl; + String bigText = + getResources().getString(R.string.notification_status_bw, + fmt.format(inBW), fmt.format(outBW)) + '\n' + + getResources().getString(R.string.notification_status_peers, + active, known) + '\n' + + getResources().getString(R.string.notification_status_expl, + inEx, outEx) + '\n' + + getResources().getString(R.string.notification_status_client, + inCl, outCl); boolean haveTunnels = inCl > 0 && outCl > 0; if(haveTunnels != _hadTunnels) { if(haveTunnels) { - _statusBar.replace(StatusBar.ICON_ACTIVE, "Client tunnels are ready"); + _currTitle = "Client tunnels are ready"; + _statusBar.replace(StatusBar.ICON_ACTIVE, _currTitle); } else { - _statusBar.replace(StatusBar.ICON_RUNNING, "Client tunnels are down"); + _currTitle = "Client tunnels are down"; + _statusBar.replace(StatusBar.ICON_RUNNING, _currTitle); } _hadTunnels = haveTunnels; - } - _statusBar.update(status, details); + } else if (_currTitle == null || _currTitle.equals("")) + _currTitle = "I2P is running"; + _statusBar.update(_currTitle, text, bigText); } @Override diff --git a/src/net/i2p/android/router/service/StatusBar.java b/src/net/i2p/android/router/service/StatusBar.java index 6a3da13808e2ab227184e21ef5e9039a0a155c28..826b24604850c7492849a63b7b830b9298bcfe41 100644 --- a/src/net/i2p/android/router/service/StatusBar.java +++ b/src/net/i2p/android/router/service/StatusBar.java @@ -48,20 +48,26 @@ class StatusBar { mNotifyBuilder.setContentIntent(pi); } - public void replace(int icon, String details) { + public void replace(int icon, String text) { mNotifyBuilder.setSmallIcon(icon) - .setTicker(details); - update(details); + .setTicker(text); + update(text); } - public void update(String details) { + public void update(String text) { String title = "I2P Status"; - update(title, details); + update(title, text); } - public void update(String title, String details) { + public void update(String title, String text, String bigText) { + mNotifyBuilder.setStyle(new NotificationCompat.BigTextStyle() + .bigText(bigText)); + update(title, text); + } + + public void update(String title, String text) { mNotifyBuilder.setContentTitle(title) - .setContentText(details); + .setContentText(text); mNotif = mNotifyBuilder.build(); mNotificationManager.notify(ID, mNotif); }