Add debounce to friend search
continuous-integration/drone/push Build is passing Details

pull/5/head
avalin 11 months ago
parent 35c792fc81
commit b7491a1134

@ -8,6 +8,7 @@ import fr.iut.alldev.allin.data.repository.FriendRepository
import fr.iut.alldev.allin.keystore.AllInKeystoreManager import fr.iut.alldev.allin.keystore.AllInKeystoreManager
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.debounce
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@ -38,28 +39,30 @@ class FriendsScreenViewModel @Inject constructor(
Timber.e(e) Timber.e(e)
} }
_search.collect { itSearch -> _search
try { .debounce(1_000L)
_state.emit( .collect { itSearch ->
if (itSearch.isNotBlank()) { try {
State.Loaded( _state.emit(
friends = friendRepository.searchNew( if (itSearch.isNotBlank()) {
token = keystoreManager.getTokenOrEmpty(), State.Loaded(
search = itSearch friends = friendRepository.searchNew(
token = keystoreManager.getTokenOrEmpty(),
search = itSearch
)
) )
) } else {
} else { State.Loaded(
State.Loaded( friends = friendRepository.getFriends(
friends = friendRepository.getFriends( token = keystoreManager.getTokenOrEmpty()
token = keystoreManager.getTokenOrEmpty() )
) )
) }
} )
) } catch (e: Exception) {
} catch (e: Exception) { Timber.e(e)
Timber.e(e) }
} }
}
} }
} }

Loading…
Cancel
Save