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

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorObserver.java')
-rw-r--r--reactive-livedata/src/main/java/it/niedermann/android/reactivelivedata/combinator/TripleCombinatorObserver.java62
1 files changed, 0 insertions, 62 deletions
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));
- }
- });
- }
- }
-}