summaryrefslogtreecommitdiffhomepage
path: root/android/lib
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2025-02-20 10:59:54 +0100
committerDavid Göransson <david.goransson@mullvad.net>2025-02-25 12:02:00 +0100
commit6e8b6594022c3b066c08cf70cb9dd2bac27b3c2f (patch)
treec7c946def065f7cd1328d1516cabd47813f8120b /android/lib
parente4724d612354963ea00f0796f2c5cdf11c15c9d7 (diff)
downloadmullvadvpn-6e8b6594022c3b066c08cf70cb9dd2bac27b3c2f.tar.xz
mullvadvpn-6e8b6594022c3b066c08cf70cb9dd2bac27b3c2f.zip
Refactor defaultRawNetworkStateFlow
Diffstat (limited to 'android/lib')
-rw-r--r--android/lib/talpid/src/main/kotlin/net/mullvad/talpid/util/ConnectivityManagerUtil.kt31
1 files changed, 13 insertions, 18 deletions
diff --git a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/util/ConnectivityManagerUtil.kt b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/util/ConnectivityManagerUtil.kt
index fddaa6fb88..f3297a995e 100644
--- a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/util/ConnectivityManagerUtil.kt
+++ b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/util/ConnectivityManagerUtil.kt
@@ -109,24 +109,19 @@ fun ConnectivityManager.networkEvents(networkRequest: NetworkRequest): Flow<Netw
}
internal fun ConnectivityManager.defaultRawNetworkStateFlow(): Flow<RawNetworkState?> =
- defaultNetworkEvents()
- .scan(
- null as RawNetworkState?,
- { state, event ->
- return@scan when (event) {
- is NetworkEvent.Available -> RawNetworkState(network = event.network)
- is NetworkEvent.BlockedStatusChanged ->
- state?.copy(blockedStatus = event.blocked)
- is NetworkEvent.CapabilitiesChanged ->
- state?.copy(networkCapabilities = event.networkCapabilities)
- is NetworkEvent.LinkPropertiesChanged ->
- state?.copy(linkProperties = event.linkProperties)
- is NetworkEvent.Losing -> state?.copy(maxMsToLive = event.maxMsToLive)
- is NetworkEvent.Lost -> null
- NetworkEvent.Unavailable -> null
- }
- },
- )
+ defaultNetworkEvents().scan(null as RawNetworkState?) { state, event -> state.reduce(event) }
+
+private fun RawNetworkState?.reduce(event: NetworkEvent): RawNetworkState? =
+ when (event) {
+ is NetworkEvent.Available -> RawNetworkState(network = event.network)
+ is NetworkEvent.BlockedStatusChanged -> this?.copy(blockedStatus = event.blocked)
+ is NetworkEvent.CapabilitiesChanged ->
+ this?.copy(networkCapabilities = event.networkCapabilities)
+ is NetworkEvent.LinkPropertiesChanged -> this?.copy(linkProperties = event.linkProperties)
+ is NetworkEvent.Losing -> this?.copy(maxMsToLive = event.maxMsToLive)
+ is NetworkEvent.Lost -> null
+ NetworkEvent.Unavailable -> null
+ }
sealed interface NetworkEvent {
data class Available(val network: Network) : NetworkEvent