summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt26
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt23
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt5
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt22
4 files changed, 21 insertions, 55 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt
index d7f1704e9a..336f3507aa 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt
@@ -19,7 +19,6 @@ import net.mullvad.mullvadvpn.dataproxy.LocationInfoCache
import net.mullvad.mullvadvpn.dataproxy.RelayListListener
import net.mullvad.mullvadvpn.model.KeygenEvent
import net.mullvad.mullvadvpn.model.TunnelState
-import net.mullvad.mullvadvpn.util.SmartDeferred
val KEY_IS_TUNNEL_INFO_EXPANDED = "is_tunnel_info_expanded"
@@ -32,7 +31,7 @@ class ConnectFragment : Fragment() {
private lateinit var locationInfo: LocationInfo
private lateinit var parentActivity: MainActivity
- private lateinit var connectionProxy: SmartDeferred<ConnectionProxy>
+ private lateinit var connectionProxy: ConnectionProxy
private lateinit var keyStatusListener: KeyStatusListener
private lateinit var locationInfoCache: LocationInfoCache
private lateinit var relayListListener: RelayListListener
@@ -40,7 +39,6 @@ class ConnectFragment : Fragment() {
private lateinit var updateKeyStatusJob: Job
private var updateTunnelStateJob: Job? = null
- private var tunnelStateSubscriptionJob: Long? = null
private var isTunnelInfoExpanded = false
private var tunnelStateListener: Int? = null
@@ -87,9 +85,9 @@ class ConnectFragment : Fragment() {
actionButton = ConnectActionButton(view)
actionButton.apply {
- onConnect = { connectionProxy.awaitThen { connect() } }
- onCancel = { connectionProxy.awaitThen { disconnect() } }
- onDisconnect = { connectionProxy.awaitThen { disconnect() } }
+ onConnect = { connectionProxy.connect() }
+ onCancel = { connectionProxy.disconnect() }
+ onDisconnect = { connectionProxy.disconnect() }
}
switchLocationButton = SwitchLocationButton(view, resources)
@@ -120,11 +118,9 @@ class ConnectFragment : Fragment() {
switchLocationButton.location = selectedRelayItem
}
- tunnelStateSubscriptionJob = connectionProxy.awaitThen {
- tunnelStateListener = onUiStateChange.subscribe { uiState ->
- updateTunnelStateJob?.cancel()
- updateTunnelStateJob = updateTunnelState(uiState, state)
- }
+ tunnelStateListener = connectionProxy.onUiStateChange.subscribe { uiState ->
+ updateTunnelStateJob?.cancel()
+ updateTunnelStateJob = updateTunnelState(uiState, connectionProxy.state)
}
}
@@ -133,14 +129,8 @@ class ConnectFragment : Fragment() {
locationInfoCache.onNewLocation = null
relayListListener.onRelayListChange = null
- tunnelStateSubscriptionJob?.let { jobId ->
- connectionProxy.cancelJob(jobId)
- }
-
tunnelStateListener?.let { listener ->
- connectionProxy.awaitThen {
- onUiStateChange.unsubscribe(listener)
- }
+ connectionProxy.onUiStateChange.unsubscribe(listener)
}
updateTunnelStateJob?.cancel()
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
index 253998f188..914188a8ab 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
@@ -10,12 +10,12 @@ import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.Job
-import kotlinx.coroutines.async
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.dataproxy.AccountCache
import net.mullvad.mullvadvpn.dataproxy.AppVersionInfoCache
+import net.mullvad.mullvadvpn.dataproxy.ConnectionProxy
import net.mullvad.mullvadvpn.dataproxy.KeyStatusListener
import net.mullvad.mullvadvpn.dataproxy.LocationInfoCache
import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport
@@ -23,7 +23,6 @@ import net.mullvad.mullvadvpn.dataproxy.RelayListListener
import net.mullvad.mullvadvpn.dataproxy.WwwAuthTokenRetriever
import net.mullvad.mullvadvpn.service.MullvadDaemon
import net.mullvad.mullvadvpn.service.MullvadVpnService
-import net.mullvad.mullvadvpn.util.SmartDeferred
class MainActivity : FragmentActivity() {
companion object {
@@ -37,13 +36,13 @@ class MainActivity : FragmentActivity() {
private set
var service = CompletableDeferred<MullvadVpnService.LocalBinder>()
private set
- private var serviceConnected = CompletableDeferred<Unit>()
val problemReport = MullvadProblemReport()
val appVersionInfoCache: AppVersionInfoCache
get() = serviceConnection!!.appVersionInfoCache
- val connectionProxy = SmartDeferred(configureConnectionProxy())
+ val connectionProxy: ConnectionProxy
+ get() = serviceConnection!!.connectionProxy
val keyStatusListener: KeyStatusListener
get() = serviceConnection!!.keyStatusListener
val relayListListener: RelayListListener
@@ -69,8 +68,6 @@ class MainActivity : FragmentActivity() {
serviceConnection = service?.let { service ->
ServiceConnection(service, this@MainActivity)
}
-
- serviceConnected.complete(Unit)
}
waitForDaemonJob = GlobalScope.launch(Dispatchers.Default) {
@@ -96,7 +93,6 @@ class MainActivity : FragmentActivity() {
service = CompletableDeferred<MullvadVpnService.LocalBinder>()
daemon = CompletableDeferred<MullvadDaemon>()
- serviceConnected = CompletableDeferred<Unit>()
}
}
@@ -109,7 +105,7 @@ class MainActivity : FragmentActivity() {
}
if (intent.getBooleanExtra(KEY_SHOULD_CONNECT, false)) {
- connectionProxy.awaitThen { connect() }
+ connectionProxy.connect()
}
}
@@ -136,8 +132,6 @@ class MainActivity : FragmentActivity() {
}
override fun onDestroy() {
- connectionProxy.cancel()
-
serviceConnection?.onDestroy()
waitForDaemonJob?.cancel()
@@ -179,14 +173,7 @@ class MainActivity : FragmentActivity() {
}
}
- private fun configureConnectionProxy() = GlobalScope.async(Dispatchers.Default) {
- serviceConnected.await()
- serviceConnection!!.connectionProxy
- }
-
private fun setVpnPermission(allow: Boolean) = GlobalScope.launch(Dispatchers.Default) {
- connectionProxy.awaitThen {
- vpnPermission.complete(allow)
- }
+ connectionProxy.vpnPermission.complete(allow)
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
index 9a885dd13d..fdb50715e9 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
@@ -25,11 +25,10 @@ import net.mullvad.mullvadvpn.relaylist.RelayItem
import net.mullvad.mullvadvpn.relaylist.RelayItemDividerDecoration
import net.mullvad.mullvadvpn.relaylist.RelayList
import net.mullvad.mullvadvpn.relaylist.RelayListAdapter
-import net.mullvad.mullvadvpn.util.SmartDeferred
class SelectLocationFragment : Fragment() {
private lateinit var parentActivity: MainActivity
- private lateinit var connectionProxy: SmartDeferred<ConnectionProxy>
+ private lateinit var connectionProxy: ConnectionProxy
private lateinit var relayListListener: RelayListListener
private lateinit var relayListContainer: ViewSwitcher
@@ -129,7 +128,7 @@ class SelectLocationFragment : Fragment() {
val keyStatus = parentActivity.keyStatusListener.keyStatus
if (keyStatus == null || keyStatus is KeygenEvent.NewKey) {
- connectionProxy.awaitThen { connect() }
+ connectionProxy.connect()
}
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
index c27c9b0133..49537c7d75 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt
@@ -27,7 +27,6 @@ import net.mullvad.mullvadvpn.dataproxy.WwwAuthTokenRetriever
import net.mullvad.mullvadvpn.model.KeygenEvent
import net.mullvad.mullvadvpn.model.KeygenFailure
import net.mullvad.mullvadvpn.model.TunnelState
-import net.mullvad.mullvadvpn.util.SmartDeferred
import org.joda.time.DateTime
import org.joda.time.DateTimeZone
import org.joda.time.format.DateTimeFormat
@@ -39,9 +38,8 @@ class WireguardKeyFragment : Fragment() {
private var currentJob: Job? = null
private var updateViewsJob: Job? = null
private var tunnelStateListener: Int? = null
- private var tunnelStateSubscriptionJob: Long? = null
private var tunnelState: TunnelState = TunnelState.Disconnected()
- private lateinit var connectionProxy: SmartDeferred<ConnectionProxy>
+ private lateinit var connectionProxy: ConnectionProxy
private lateinit var keyStatusListener: KeyStatusListener
private lateinit var parentActivity: MainActivity
private lateinit var wwwTokenRetriever: WwwAuthTokenRetriever
@@ -299,14 +297,8 @@ class WireguardKeyFragment : Fragment() {
}
override fun onPause() {
- tunnelStateSubscriptionJob?.let { jobId ->
- connectionProxy.cancelJob(jobId)
- }
-
tunnelStateListener?.let { listener ->
- connectionProxy.awaitThen {
- onUiStateChange.unsubscribe(listener)
- }
+ connectionProxy.onUiStateChange.unsubscribe(listener)
}
keyStatusListener.onKeyStatusChange = null
@@ -321,12 +313,10 @@ class WireguardKeyFragment : Fragment() {
override fun onResume() {
super.onResume()
- tunnelStateSubscriptionJob = connectionProxy.awaitThen {
- tunnelStateListener = onUiStateChange.subscribe { uiState ->
- tunnelState = uiState
- updateViewsJob?.cancel()
- updateViewsJob = updateViewJob()
- }
+ tunnelStateListener = connectionProxy.onUiStateChange.subscribe { uiState ->
+ tunnelState = uiState
+ updateViewsJob?.cancel()
+ updateViewsJob = updateViewJob()
}
keyStatusListener.onKeyStatusChange = { _ ->