diff options
Diffstat (limited to 'reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator')
4 files changed, 0 insertions, 155 deletions
diff --git a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/DoubleCombinatorLiveData.java b/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/DoubleCombinatorLiveData.java deleted file mode 100644 index 63c704546..000000000 --- a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/DoubleCombinatorLiveData.java +++ /dev/null @@ -1,20 +0,0 @@ -package it.niedermann.android.reactivelivedata.combinator; - -import androidx.annotation.NonNull; -import androidx.arch.core.util.Function; -import androidx.core.util.Pair; -import androidx.core.util.Supplier; -import androidx.lifecycle.LiveData; - -import it.niedermann.android.reactivelivedata.ReactiveLiveData; - -public class DoubleCombinatorLiveData<T, Y> extends ReactiveLiveData<Pair<T, Y>> { - - public DoubleCombinatorLiveData(@NonNull LiveData<T> source, @NonNull Supplier<LiveData<Y>> secondSourceSupplier) { - this(source, val -> secondSourceSupplier.get()); - } - - public DoubleCombinatorLiveData(@NonNull LiveData<T> source, @NonNull Function<T, LiveData<Y>> secondSourceFunction) { - addSource(source, new DoubleCombinatorObserver<>(this, secondSourceFunction)); - } -} diff --git a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/DoubleCombinatorObserver.java b/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/DoubleCombinatorObserver.java deleted file mode 100644 index 18c2affbb..000000000 --- a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/DoubleCombinatorObserver.java +++ /dev/null @@ -1,45 +0,0 @@ -package it.niedermann.android.reactivelivedata.combinator; - -import androidx.annotation.NonNull; -import androidx.arch.core.util.Function; -import androidx.core.util.Pair; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MediatorLiveData; -import androidx.lifecycle.Observer; - -class DoubleCombinatorObserver<T, Y> implements Observer<T> { - private final MediatorLiveData<Pair<T, Y>> mediator; - private final Function<T, LiveData<Y>> secondSourceFunction; - private T value1; - private Y value2; - - private LiveData<Y> secondSource; - - private boolean value1emitted = false; - private boolean value2emitted = false; - - public DoubleCombinatorObserver(@NonNull MediatorLiveData<Pair<T, Y>> mediator, @NonNull Function<T, LiveData<Y>> secondSourceFunction) { - this.mediator = mediator; - this.secondSourceFunction = secondSourceFunction; - } - - @Override - public void onChanged(T emittedValue1) { - value1 = emittedValue1; - value1emitted = true; - if (value2emitted) { - mediator.setValue(new Pair<>(value1, value2)); - } - - if (secondSource == null) { - secondSource = secondSourceFunction.apply(emittedValue1); - mediator.addSource(secondSource, val2 -> { - value2 = val2; - value2emitted = true; - if (value1emitted) { - mediator.setValue(new Pair<>(value1, value2)); - } - }); - } - } -} diff --git a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorLiveData.java b/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorLiveData.java deleted file mode 100644 index de0353c42..000000000 --- a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorLiveData.java +++ /dev/null @@ -1,28 +0,0 @@ -package it.niedermann.android.reactivelivedata.combinator; - -import androidx.annotation.NonNull; -import androidx.arch.core.util.Function; -import androidx.core.util.Supplier; -import androidx.lifecycle.LiveData; - -import it.niedermann.android.reactivelivedata.ReactiveLiveData; -import kotlin.Triple; - -public class TripleCombinatorLiveData<T, Y, Z> extends ReactiveLiveData<Triple<T, Y, Z>> { - - public TripleCombinatorLiveData(@NonNull LiveData<T> source, @NonNull Supplier<LiveData<Y>> secondSourceSupplier, @NonNull Supplier<LiveData<Z>> thirdSourceSupplier) { - this(source, val -> secondSourceSupplier.get(), val -> thirdSourceSupplier.get()); - } - - public TripleCombinatorLiveData(@NonNull LiveData<T> source, @NonNull Function<T, LiveData<Y>> secondSourceFunction, @NonNull Supplier<LiveData<Z>> thirdSourceSupplier) { - this(source, secondSourceFunction, val -> thirdSourceSupplier.get()); - } - - public TripleCombinatorLiveData(@NonNull LiveData<T> source, @NonNull Supplier<LiveData<Y>> secondSourceSupplier, @NonNull Function<T, LiveData<Z>> thirdSourceFunction) { - this(source, val -> secondSourceSupplier.get(), thirdSourceFunction); - } - - public TripleCombinatorLiveData(@NonNull LiveData<T> source, @NonNull Function<T, LiveData<Y>> secondSourceFunction, @NonNull Function<T, LiveData<Z>> thirdSourceFunction) { - addSource(source, new TripleCombinatorObserver<>(this, secondSourceFunction, thirdSourceFunction)); - } -} diff --git a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorObserver.java b/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorObserver.java deleted file mode 100644 index f146fa9cc..000000000 --- a/reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorObserver.java +++ /dev/null @@ -1,62 +0,0 @@ -package it.niedermann.android.reactivelivedata.combinator; - -import androidx.annotation.NonNull; -import androidx.arch.core.util.Function; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MediatorLiveData; -import androidx.lifecycle.Observer; - -import kotlin.Triple; - -class TripleCombinatorObserver<T, Y, Z> implements Observer<T> { - private final MediatorLiveData<Triple<T, Y, Z>> mediator; - private final Function<T, LiveData<Y>> secondSourceFunction; - private final Function<T, LiveData<Z>> thirdSourceFunction; - private T value1; - private Y value2; - private Z value3; - - private LiveData<Y> secondSource; - private LiveData<Z> thirdSource; - - private boolean value1emitted = false; - private boolean value2emitted = false; - private boolean value3emitted = false; - - public TripleCombinatorObserver(@NonNull MediatorLiveData<Triple<T, Y, Z>> mediator, @NonNull Function<T, LiveData<Y>> secondSourceFunction, @NonNull Function<T, LiveData<Z>> thirdSourceFunction) { - this.mediator = mediator; - this.secondSourceFunction = secondSourceFunction; - this.thirdSourceFunction = thirdSourceFunction; - } - - @Override - public void onChanged(T emittedValue1) { - value1 = emittedValue1; - value1emitted = true; - if (value2emitted && value3emitted) { - mediator.setValue(new Triple<>(value1, value2, value3)); - } - - if (secondSource == null) { - secondSource = secondSourceFunction.apply(emittedValue1); - mediator.addSource(secondSource, val2 -> { - value2 = val2; - value2emitted = true; - if (value1emitted && value3emitted) { - mediator.setValue(new Triple<>(value1, value2, value3)); - } - }); - } - - if (thirdSource == null) { - thirdSource = thirdSourceFunction.apply(emittedValue1); - mediator.addSource(thirdSource, val3 -> { - value3 = val3; - value3emitted = true; - if (value1emitted && value2emitted) { - mediator.setValue(new Triple<>(value1, value2, value3)); - } - }); - } - } -} |