diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-05 00:30:43 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-12 13:19:37 +0000 |
| commit | bf57a7a1b4b31a0be7192401b38eeab542e68162 (patch) | |
| tree | a162270582e1b01265f10b2321222151adef3483 /android/src | |
| parent | 4d04861d45a489a7c19b0c04003b89b9e75c95c8 (diff) | |
| download | mullvadvpn-bf57a7a1b4b31a0be7192401b38eeab542e68162.tar.xz mullvadvpn-bf57a7a1b4b31a0be7192401b38eeab542e68162.zip | |
Create UI-side `ConnectionProxy`
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt new file mode 100644 index 0000000000..c34983ae03 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt @@ -0,0 +1,34 @@ +package net.mullvad.mullvadvpn.ui.serviceconnection + +import android.os.Messenger +import net.mullvad.mullvadvpn.ipc.DispatchingHandler +import net.mullvad.mullvadvpn.ipc.Event +import net.mullvad.mullvadvpn.ipc.Request +import net.mullvad.mullvadvpn.model.TunnelState +import net.mullvad.talpid.util.EventNotifier + +class ConnectionProxy(val connection: Messenger, eventDispatcher: DispatchingHandler<Event>) { + val onStateChange = EventNotifier<TunnelState>(TunnelState.Disconnected) + + init { + eventDispatcher.registerHandler(Event.TunnelStateChange::class) { event -> + onStateChange.notify(event.tunnelState) + } + } + + fun connect() { + connection.send(Request.Connect.message) + } + + fun disconnect() { + connection.send(Request.Disconnect.message) + } + + fun reconnect() { + connection.send(Request.Reconnect.message) + } + + fun onDestroy() { + onStateChange.unsubscribeAll() + } +} |
