Skip to content

Instantly share code, notes, and snippets.

fun <T> Observable<T>.debounceIf(
predicate: (T) -> Boolean,
timeout: Long,
unit: TimeUnit,
scheduler: Scheduler
): Observable<T> {
return Observable.merge(
filter { predicate(it) }
.debounce(timeout, unit, scheduler),
filter { !predicate(it) }
fun <T> Observable<T>.debounceIf(
predicate: (T) -> Boolean,
timeout: Long,
unit: TimeUnit,
scheduler: Scheduler
): Observable<T> {
return Observable.merge(
this.filter { predicate(it) },
this.filter { !predicate(it) }
)
fun <T> Observable<T>.debounceIf(
predicate: (T) -> Boolean,
timeout: Long,
unit: TimeUnit,
scheduler: Scheduler
): Observable<T> {
return this.debounce(timeout, unit, scheduler)
}