Simon Lin
08/31/2020, 9:48 AMinfix fun <E, R> ReceiveChannel<E>.zip(
other: ReceiveChannel<R>
): ReceiveChannel<Pair<E, R>> (source)
is deprecated. What is the alternative?val avatarProgressChannel = Channel<Int>()
val thumbnailProgressChannel = Channel<Int>()
avatarTask.addOnProgressListener { progress ->
avatarProgressChannel.offer(progress) // 0, 1, 2, ..., 100
}
thumbnailTask.addOnProgressListener { progress ->
thumbnailProgressChannel.offer(progress) // 0, 1, 2, ..., 100
}
avatarProgressChannel.zip(thumbnailProgressChannel) { p1, p2 -> p1 + p2 }
.consumeAsFlow()
.asLiveData() // expose to UI layer, emit 0, 1, 2, ..., 200
ephemient
08/31/2020, 10:00 AMfun <T1, T2, R> Flow<T1>.zip(other: Flow<T2>, transform: suspend (T1, T2) -> R): Flow<R>
Simon Lin
08/31/2020, 10:05 AMavatarProgressChannel.receiveAsFlow()
.zip(thumbnailProgressChannel.receiveAsFlow()) { p1, p2 -> p1 + p2 }
.asLiveData()
ephemient
08/31/2020, 10:12 AMDeprecated: Channel operators are deprecated in favour of Flow and will be removed in 1.4