Start sync faster

This commit is contained in:
Benoit Marty 2024-12-19 13:44:19 +01:00
parent 33ba517fe0
commit c4fd20faf4

View file

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