diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index fda21cf..1bb9ea6 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -17,7 +17,7 @@ android {
val versionMajor = 2
val versionMinor = 4
- val versionPatch = 1
+ val versionPatch = 2
val versionBuild = 0
defaultConfig {
diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/ServiceManager.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/ServiceManager.kt
index 960f0e8..c410643 100644
--- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/ServiceManager.kt
+++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/ServiceManager.kt
@@ -9,6 +9,7 @@ import android.content.Intent
import com.google.firebase.crashlytics.ktx.crashlytics
import com.google.firebase.ktx.Firebase
import com.zaneschepke.wireguardautotunnel.R
+import timber.log.Timber
object ServiceManager {
@Suppress("DEPRECATION")
@@ -35,7 +36,14 @@ object ServiceManager {
intent.component?.javaClass
try {
when(action) {
- Action.START -> context.startForegroundService(intent)
+ Action.START -> {
+ try {
+ context.startForegroundService(intent)
+ } catch (e : Exception) {
+ Timber.e("Unable to start service foreground ${e.message}")
+ context.startService(intent)
+ }
+ }
Action.STOP -> context.startService(intent)
}
} catch (e : Exception) {
diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/WireGuardTunnelService.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/WireGuardTunnelService.kt
index 614e92a..a43d2c8 100644
--- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/WireGuardTunnelService.kt
+++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/service/foreground/WireGuardTunnelService.kt
@@ -47,6 +47,7 @@ class WireGuardTunnelService : ForegroundService() {
val tunnelConfig = TunnelConfig.from(tunnelConfigString)
tunnelName = tunnelConfig.name
vpnService.startTunnel(tunnelConfig)
+ launchVpnStartingNotification()
} catch (e : Exception) {
Timber.e("Problem starting tunnel: ${e.message}")
stopService(extras)
@@ -60,6 +61,7 @@ class WireGuardTunnelService : ForegroundService() {
val tunnelConfig = TunnelConfig.from(setting.defaultTunnel!!)
tunnelName = tunnelConfig.name
vpnService.startTunnel(tunnelConfig)
+ launchVpnStartingNotification()
}
}
}
@@ -117,6 +119,18 @@ class WireGuardTunnelService : ForegroundService() {
super.startForeground(foregroundId, notification)
}
+ private fun launchVpnStartingNotification() {
+ val notification = notificationService.createNotification(
+ channelId = getString(R.string.vpn_channel_id),
+ channelName = getString(R.string.vpn_channel_name),
+ title = getString(R.string.vpn_starting),
+ onGoing = false,
+ showTimestamp = true,
+ description = getString(R.string.attempt_connection)
+ )
+ super.startForeground(foregroundId, notification)
+ }
+
private fun launchVpnConnectionFailedNotification(message : String) {
val notification = notificationService.createNotification(
channelId = getString(R.string.vpn_channel_id),
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 14df420..7a2536e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -89,4 +89,6 @@
Search packages
Clear Icon
Search Icon
+ Attempting connection..
+ VPN Starting
\ No newline at end of file