From a71df5fde27f29a32725e5f729f6ae429545cb0e Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 10 Jan 2016 18:47:30 +0100 Subject: Fine tune toasts --- .../java/de/blinkt/openvpn/core/OpenVPNService.java | 17 +++++++++++++---- .../src/main/java/de/blinkt/openvpn/core/VpnStatus.java | 3 +++ 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'main') diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index b55328a4..dfbbbd30 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -85,6 +85,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac private String mRemoteGW; private final Object mProcessLock = new Object(); private Handler guiHandler; + private Toast mlastToast; // From: http://stackoverflow.com/questions/3758606/how-to-convert-byte-size-into-human-readable-format-in-java public static String humanReadableByteCount(long bytes, boolean mbit) { @@ -180,19 +181,26 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac startForeground(OPENVPN_STATUS, notification); // Check if running on a TV - UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE); - if(uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) + if(runningOnAndroidTV() && !lowpriority) guiHandler.post(new Runnable() { @Override public void run() { + if (mlastToast!=null) + mlastToast.cancel(); String toastText = String.format(Locale.getDefault(), "%s - %s", mProfile.mName, msg); - Toast.makeText(getBaseContext(), toastText, Toast.LENGTH_SHORT).show(); + mlastToast = Toast.makeText(getBaseContext(), toastText, Toast.LENGTH_SHORT); + mlastToast.show(); } }); } + private boolean runningOnAndroidTV() { + UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE); + return uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION; + } + private int getIconByConnectionStatus(ConnectionStatus level) { switch (level) { case LEVEL_CONNECTED: @@ -874,7 +882,8 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } else if (level == LEVEL_CONNECTED) { mDisplayBytecount = true; mConnecttime = System.currentTimeMillis(); - lowpriority = true; + if (!runningOnAndroidTV()) + lowpriority = true; } else { mDisplayBytecount = false; } diff --git a/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java b/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java index c0f958c4..3ff41eee 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java +++ b/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java @@ -98,6 +98,9 @@ public class VpnStatus { break; } + while(message.endsWith(",")) + message = message.substring(0, message.length()-1); + String prefix = c.getString(mLastStateresid) + ":"; String status = mLaststate; if (status.equals("NOPROCESS")) -- cgit v1.2.3