diff --git a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt index 5d52e7780d..93fc8bd06e 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt @@ -84,11 +84,11 @@ import io.element.android.libraries.preferences.api.store.EnableNativeSlidingSyn import io.element.android.services.appnavstate.api.AppNavigationStateService import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.FlowPreview -import kotlinx.coroutines.flow.collectIndexed import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize import timber.log.Timber @@ -197,9 +197,13 @@ class LoggedInFlowNode @AssistedInject constructor( ) { syncState, networkStatus -> Pair(syncState, networkStatus) } - .collectIndexed { index, (syncState, networkStatus) -> - Timber.d("Sync state: $syncState, network status: $networkStatus, index: $index") - if (syncState != SyncState.Running && (index == 0 || networkStatus == NetworkStatus.Online)) { + .onStart { + // Temporary fix to ensure that the sync is started even if the networkStatus is offline. + syncService.startSync() + } + .collect { (syncState, networkStatus) -> + Timber.d("Sync state: $syncState, network status: $networkStatus") + if (syncState != SyncState.Running && networkStatus == NetworkStatus.Online) { syncService.startSync() } }