API: simplify NetworkMonitor api
This commit is contained in:
parent
8ce65b4429
commit
37174cf53c
5 changed files with 7 additions and 14 deletions
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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}")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue