From 5c52c7fbc522e7d11141291d5650bb53cd1fa509 Mon Sep 17 00:00:00 2001 From: Pacien TRAN-GIRARD Date: Thu, 6 Jul 2017 22:40:17 +0200 Subject: Return to start screen if VPN disconnected by other means --- .../main/java/org/pacien/tincapp/service/TincVpnService.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt') diff --git a/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt b/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt index 90b7b87..45f901b 100644 --- a/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt +++ b/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt @@ -28,8 +28,10 @@ class TincVpnService : VpnService() { } override fun onDestroy() { + connected = false + try { - Tinc.stop(netName!!) + if (netName != null) Tinc.stop(netName!!) fd?.close() } catch (e: IOException) { e.printStackTrace() @@ -42,7 +44,7 @@ class TincVpnService : VpnService() { } private fun startVpn(netName: String) { - if (netName == TincVpnService.netName) onDestroy() + if (isConnected()) onDestroy() TincVpnService.netName = netName TincVpnService.interfaceCfg = VpnInterfaceConfiguration(AppPaths.netConfFile(netName)) @@ -55,6 +57,8 @@ class TincVpnService : VpnService() { } catch (e: IOException) { e.printStackTrace() } + + connected = true } companion object { @@ -64,6 +68,7 @@ class TincVpnService : VpnService() { private enum class Action { START, STOP } + private var connected: Boolean = false private var netName: String? = null private var interfaceCfg: VpnInterfaceConfiguration? = null private var fd: ParcelFileDescriptor? = null @@ -81,7 +86,7 @@ class TincVpnService : VpnService() { fun getCurrentNetName() = netName fun getCurrentInterfaceCfg() = interfaceCfg - fun isConnected() = netName != null + fun isConnected() = connected } -- cgit v1.2.3