Welcome to mirror list, hosted at ThFree Co, Russian Federation.

FilterLiveData.java « filter « reactivelivedata « android « niedermann « it « java « main « src « reactive-livedata - github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fac27030f6c90f3fdf138ac30af2c54132990573 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package it.niedermann.android.reactivelivedata.filter;

import androidx.annotation.NonNull;
import androidx.core.util.Predicate;
import androidx.core.util.Supplier;
import androidx.lifecycle.LiveData;

import it.niedermann.android.reactivelivedata.ReactiveLiveData;

public class FilterLiveData<T> extends ReactiveLiveData<T> {

    public FilterLiveData(@NonNull LiveData<T> source, @NonNull Supplier<Boolean> supplier) {
        this(source, val -> supplier.get());
    }

    public FilterLiveData(@NonNull LiveData<T> source, @NonNull Predicate<T> predicate) {
        addSource(source, val -> {
            if (predicate.test(val)) {
                setValue(val);
            }
        });
    }
}