Start sync faster

This commit is contained in:
Benoit Marty 2024-12-19 13:44:19 +01:00
parent acf7e4655b
commit 4c63d892ac

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()
} }
} }