Ben
05/06/2021, 7:38 PMprivate val searchQueryStream = MutableStateFlow<String>("")
private val refreshChannel = Channel<Unit>(Channel.CONFLATED).apply { offer(Unit) }
val resultStream: Flow<PagingData<TenorGifTileData>> =
searchQueryStream
.combine(refreshChannel.receiveAsFlow()) { queryStream, _ -> queryStream }
.filter { searchQuery ->
searchQuery.query.isNotEmpty()
}
.flatMapLatest { searchQuery ->
repository.resultsForSearchQuery(searchQuery)
}
fun refresh() {
if (!refreshChannel.isClosedForSend) {
refreshChannel.offer(Unit)
}
}
ursus
05/07/2021, 12:06 PM