API: simplify NetworkMonitor api

This commit is contained in:
ganfra 2023-06-22 15:47:15 +02:00
parent 8ce65b4429
commit 37174cf53c
5 changed files with 7 additions and 14 deletions

View file

@ -96,7 +96,7 @@ class MessagesPresenter @Inject constructor(
mutableStateOf(null) mutableStateOf(null)
} }
val networkConnectionStatus by networkMonitor.connectivity.collectAsState(initial = networkMonitor.currentConnectivityStatus) val networkConnectionStatus by networkMonitor.connectivity.collectAsState()
val snackbarMessage = handleSnackbarMessage(snackbarDispatcher) val snackbarMessage = handleSnackbarMessage(snackbarDispatcher)

View file

@ -16,9 +16,8 @@
package io.element.android.features.networkmonitor.api package io.element.android.features.networkmonitor.api
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow
interface NetworkMonitor { interface NetworkMonitor {
val connectivity: Flow<NetworkStatus> val connectivity: StateFlow<NetworkStatus>
val currentConnectivityStatus: NetworkStatus
} }

View file

@ -29,6 +29,7 @@ import io.element.android.libraries.di.ApplicationContext
import io.element.android.libraries.di.SingleIn import io.element.android.libraries.di.SingleIn
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@ -61,9 +62,7 @@ class NetworkMonitorImpl @Inject constructor(
} }
private val _connectivity = MutableStateFlow(NetworkStatus.Online) private val _connectivity = MutableStateFlow(NetworkStatus.Online)
override val connectivity: Flow<NetworkStatus> = _connectivity override val connectivity: StateFlow<NetworkStatus> = _connectivity
override val currentConnectivityStatus: NetworkStatus get() = _connectivity.value
init { init {
listenToConnectionChanges() listenToConnectionChanges()

View file

@ -18,13 +18,8 @@ package io.element.android.features.networkmonitor.test
import io.element.android.features.networkmonitor.api.NetworkMonitor import io.element.android.features.networkmonitor.api.NetworkMonitor
import io.element.android.features.networkmonitor.api.NetworkStatus import io.element.android.features.networkmonitor.api.NetworkStatus
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
class FakeNetworkMonitor(initialStatus: NetworkStatus = NetworkStatus.Online) : NetworkMonitor { class FakeNetworkMonitor(initialStatus: NetworkStatus = NetworkStatus.Online) : NetworkMonitor {
override val currentConnectivityStatus: NetworkStatus override val connectivity = MutableStateFlow(initialStatus)
get() = _connectivityStatus.value
private val _connectivityStatus: MutableStateFlow<NetworkStatus> = MutableStateFlow(initialStatus)
override val connectivity: Flow<NetworkStatus> = _connectivityStatus
} }

View file

@ -80,7 +80,7 @@ class RoomListPresenter @Inject constructor(
.roomList() .roomList()
.collectAsState() .collectAsState()
val networkConnectionStatus by networkMonitor.connectivity.collectAsState(initial = networkMonitor.currentConnectivityStatus) val networkConnectionStatus by networkMonitor.connectivity.collectAsState()
Timber.v("RoomSummaries size = ${roomSummaries.size}") Timber.v("RoomSummaries size = ${roomSummaries.size}")