From 37174cf53c0b5880060fe9a3ea470d1baf8bbff5 Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 22 Jun 2023 15:47:15 +0200 Subject: [PATCH] API: simplify NetworkMonitor api --- .../android/features/messages/impl/MessagesPresenter.kt | 2 +- .../android/features/networkmonitor/api/NetworkMonitor.kt | 5 ++--- .../features/networkmonitor/impl/NetworkMonitorImpl.kt | 5 ++--- .../features/networkmonitor/test/FakeNetworkMonitor.kt | 7 +------ .../android/features/roomlist/impl/RoomListPresenter.kt | 2 +- 5 files changed, 7 insertions(+), 14 deletions(-) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt index 7daf99283d..a39dc77db3 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt @@ -96,7 +96,7 @@ class MessagesPresenter @Inject constructor( mutableStateOf(null) } - val networkConnectionStatus by networkMonitor.connectivity.collectAsState(initial = networkMonitor.currentConnectivityStatus) + val networkConnectionStatus by networkMonitor.connectivity.collectAsState() val snackbarMessage = handleSnackbarMessage(snackbarDispatcher) diff --git a/features/networkmonitor/api/src/main/kotlin/io/element/android/features/networkmonitor/api/NetworkMonitor.kt b/features/networkmonitor/api/src/main/kotlin/io/element/android/features/networkmonitor/api/NetworkMonitor.kt index e85a61512d..9e217adb41 100644 --- a/features/networkmonitor/api/src/main/kotlin/io/element/android/features/networkmonitor/api/NetworkMonitor.kt +++ b/features/networkmonitor/api/src/main/kotlin/io/element/android/features/networkmonitor/api/NetworkMonitor.kt @@ -16,9 +16,8 @@ package io.element.android.features.networkmonitor.api -import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.StateFlow interface NetworkMonitor { - val connectivity: Flow - val currentConnectivityStatus: NetworkStatus + val connectivity: StateFlow } diff --git a/features/networkmonitor/impl/src/main/kotlin/io/element/android/features/networkmonitor/impl/NetworkMonitorImpl.kt b/features/networkmonitor/impl/src/main/kotlin/io/element/android/features/networkmonitor/impl/NetworkMonitorImpl.kt index 25819c6eb3..8c8736311e 100644 --- a/features/networkmonitor/impl/src/main/kotlin/io/element/android/features/networkmonitor/impl/NetworkMonitorImpl.kt +++ b/features/networkmonitor/impl/src/main/kotlin/io/element/android/features/networkmonitor/impl/NetworkMonitorImpl.kt @@ -29,6 +29,7 @@ import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.di.SingleIn import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow import timber.log.Timber import javax.inject.Inject @@ -61,9 +62,7 @@ class NetworkMonitorImpl @Inject constructor( } private val _connectivity = MutableStateFlow(NetworkStatus.Online) - override val connectivity: Flow = _connectivity - - override val currentConnectivityStatus: NetworkStatus get() = _connectivity.value + override val connectivity: StateFlow = _connectivity init { listenToConnectionChanges() diff --git a/features/networkmonitor/test/src/main/kotlin/io/element/android/features/networkmonitor/test/FakeNetworkMonitor.kt b/features/networkmonitor/test/src/main/kotlin/io/element/android/features/networkmonitor/test/FakeNetworkMonitor.kt index d7ccab0b26..7db4acaa32 100644 --- a/features/networkmonitor/test/src/main/kotlin/io/element/android/features/networkmonitor/test/FakeNetworkMonitor.kt +++ b/features/networkmonitor/test/src/main/kotlin/io/element/android/features/networkmonitor/test/FakeNetworkMonitor.kt @@ -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.NetworkStatus -import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow class FakeNetworkMonitor(initialStatus: NetworkStatus = NetworkStatus.Online) : NetworkMonitor { - override val currentConnectivityStatus: NetworkStatus - get() = _connectivityStatus.value - - private val _connectivityStatus: MutableStateFlow = MutableStateFlow(initialStatus) - override val connectivity: Flow = _connectivityStatus + override val connectivity = MutableStateFlow(initialStatus) } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt index 30396da74d..b51a5dec3d 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt @@ -80,7 +80,7 @@ class RoomListPresenter @Inject constructor( .roomList() .collectAsState() - val networkConnectionStatus by networkMonitor.connectivity.collectAsState(initial = networkMonitor.currentConnectivityStatus) + val networkConnectionStatus by networkMonitor.connectivity.collectAsState() Timber.v("RoomSummaries size = ${roomSummaries.size}")