summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-01-13 18:07:01 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-21 12:24:47 +0000
commit771d4e28144f3c349c5819eac33667c6e56e71a4 (patch)
treeccb4d615122202563c7fd925f06a16ef2c6fd927 /android/src
parent980ca3cd9d189b02625d6fdecf75bd279fcc15b1 (diff)
downloadmullvadvpn-771d4e28144f3c349c5819eac33667c6e56e71a4.tar.xz
mullvadvpn-771d4e28144f3c349c5819eac33667c6e56e71a4.zip
Allow setting Allow LAN through service connection
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt3
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt4
3 files changed, 13 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt
index f93ef0be1a..dc05949c9c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ipc/Request.kt
@@ -69,6 +69,9 @@ sealed class Request : Message.RequestMessage() {
data class SetAccount(val account: String?) : Request()
@Parcelize
+ data class SetAllowLan(val allow: Boolean) : Request()
+
+ @Parcelize
data class SetEnableCustomDns(val enable: Boolean) : Request()
@Parcelize
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
index 0a52279c6e..e956fe1b73 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
@@ -16,6 +16,7 @@ import net.mullvad.talpid.util.EventNotifier
class SettingsListener(endpoint: ServiceEndpoint) {
private sealed class Command {
+ class SetAllowLan(val allow: Boolean) : Command()
class SetWireGuardMtu(val mtu: Int?) : Command()
}
@@ -43,6 +44,10 @@ class SettingsListener(endpoint: ServiceEndpoint) {
}
endpoint.dispatcher.apply {
+ registerHandler(Request.SetAllowLan::class) { request ->
+ commandChannel.sendBlocking(Command.SetAllowLan(request.allow))
+ }
+
registerHandler(Request.SetWireGuardMtu::class) { request ->
commandChannel.sendBlocking(Command.SetWireGuardMtu(request.mtu))
}
@@ -105,6 +110,7 @@ class SettingsListener(endpoint: ServiceEndpoint) {
try {
for (command in channel) {
when (command) {
+ is Command.SetAllowLan -> daemon.await().setAllowLan(command.allow)
is Command.SetWireGuardMtu -> daemon.await().setWireguardMtu(command.mtu)
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt
index 8f72022876..cdfb3f6e54 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/SettingsListener.kt
@@ -21,6 +21,10 @@ class SettingsListener(val connection: Messenger, eventDispatcher: DispatchingHa
get() = accountNumberNotifier.latestEvent
set(value) { connection.send(Request.SetAccount(value).message) }
+ var allowLan: Boolean
+ get() = settingsNotifier.latestEvent?.allowLan ?: false
+ set(value) { connection.send(Request.SetAllowLan(value).message) }
+
var wireguardMtu: Int?
get() = settingsNotifier.latestEvent?.tunnelOptions?.wireguard?.options?.mtu
set(value) { connection.send(Request.SetWireGuardMtu(value).message) }