summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-24 11:25:37 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-24 11:25:37 -0300
commit3c54992c343097dcdb329f02e8fc51ca4866796c (patch)
tree712d6ddd857424005ac1e147f60aaaab0e2f2b6d /android/src/main
parenta1adcdd2ef1c92c7ca776f70890d513d8738e190 (diff)
parent149208025ffd11f7a7e7843845f6c98ab9fa5c3b (diff)
downloadmullvadvpn-3c54992c343097dcdb329f02e8fc51ca4866796c.tar.xz
mullvadvpn-3c54992c343097dcdb329f02e8fc51ca4866796c.zip
Merge branch 'handle-intents-when-logged-out'
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/AndroidManifest.xml3
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt9
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt22
3 files changed, 23 insertions, 11 deletions
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index 668e3e772a..afad471490 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -19,6 +19,9 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
+ <intent-filter>
+ <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
+ </intent-filter>
</activity>
<service android:name="net.mullvad.mullvadvpn.service.MullvadVpnService"
android:permission="android.permission.BIND_VPN_SERVICE">
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt
index 3807495102..c988f966a0 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt
@@ -26,15 +26,6 @@ class SettingsListener(val daemon: MullvadDaemon) {
}
}
- var onAllowLanChange: ((Boolean) -> Unit)? = null
- set(value) {
- synchronized(this) {
- field = value
-
- value?.invoke(settings.allowLan)
- }
- }
-
var onRelaySettingsChange: ((RelaySettings?) -> Unit)? = null
set(value) {
synchronized(this) {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
index 20c2545e12..b850406da8 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
@@ -10,6 +10,7 @@ import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import net.mullvad.mullvadvpn.dataproxy.ConnectionProxy
import net.mullvad.mullvadvpn.service.tunnelstate.TunnelStateUpdater
+import net.mullvad.mullvadvpn.ui.MainActivity
import net.mullvad.talpid.TalpidVpnService
import net.mullvad.talpid.util.EventNotifier
@@ -64,6 +65,12 @@ class MullvadVpnService : TalpidVpnService() {
notificationManager.lockedToForeground = value
}
+ private var loggedIn = false
+ set(value) {
+ field = value
+ notificationManager.loggedIn = value
+ }
+
override fun onCreate() {
super.onCreate()
@@ -78,7 +85,12 @@ class MullvadVpnService : TalpidVpnService() {
val action = intent?.action
if (action == VpnService.SERVICE_INTERFACE || action == KEY_CONNECT_ACTION) {
- pendingAction = PendingAction.Connect
+ if (loggedIn) {
+ pendingAction = PendingAction.Connect
+ } else {
+ pendingAction = null
+ openUi()
+ }
} else if (action == KEY_DISCONNECT_ACTION) {
pendingAction = PendingAction.Disconnect
}
@@ -140,7 +152,7 @@ class MullvadVpnService : TalpidVpnService() {
val newDaemon = MullvadDaemon(this@MullvadVpnService).apply {
onSettingsChange.subscribe { settings ->
- notificationManager.loggedIn = settings?.accountToken != null
+ loggedIn = settings?.accountToken != null
}
onDaemonStopped = {
@@ -188,4 +200,10 @@ class MullvadVpnService : TalpidVpnService() {
tearDown()
setUp()
}
+
+ private fun openUi() {
+ val intent = Intent(this, MainActivity::class.java)
+
+ startActivity(intent)
+ }
}