cod fix
This commit is contained in:
parent
6b9f061004
commit
bdd690e771
|
|
@ -0,0 +1,46 @@
|
|||
package ru.touchin.roboswag.components.navigation;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import rx.Observable;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.subjects.BehaviorSubject;
|
||||
|
||||
/**
|
||||
* Created by Gavriil Sitnikov on 18/04/16.
|
||||
* TODO: description
|
||||
*/
|
||||
public class BaseUiBindable implements UiBindable {
|
||||
|
||||
@NonNull
|
||||
private final BehaviorSubject<Boolean> isCreatedSubject;
|
||||
@NonNull
|
||||
private final BehaviorSubject<Boolean> isStartedSubject;
|
||||
|
||||
public BaseUiBindable(@NonNull final BehaviorSubject<Boolean> isCreatedSubject,
|
||||
@NonNull final BehaviorSubject<Boolean> isStartedSubject) {
|
||||
this.isCreatedSubject = isCreatedSubject;
|
||||
this.isStartedSubject = isStartedSubject;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public <T> Observable<T> bind(@NonNull final Observable<T> observable) {
|
||||
return isStartedSubject
|
||||
.switchMap(isStarted -> isStarted ? observable.observeOn(AndroidSchedulers.mainThread()) : Observable.never())
|
||||
.takeUntil(isCreatedSubject.filter(created -> !created));
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public <T> Observable<T> untilStop(@NonNull final Observable<T> observable) {
|
||||
return observable.observeOn(AndroidSchedulers.mainThread())
|
||||
.takeUntil(isStartedSubject.filter(started -> !started));
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public <T> Observable<T> untilDestroy(@NonNull final Observable<T> observable) {
|
||||
return observable.observeOn(AndroidSchedulers.mainThread())
|
||||
.takeUntil(isCreatedSubject.filter(created -> !created));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -32,7 +32,6 @@ import android.view.ViewGroup;
|
|||
import ru.touchin.roboswag.components.navigation.activities.ViewControllerActivity;
|
||||
import ru.touchin.roboswag.components.navigation.fragments.ViewControllerFragment;
|
||||
import rx.Observable;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.subjects.BehaviorSubject;
|
||||
|
||||
/**
|
||||
|
|
@ -53,6 +52,8 @@ public class ViewController<TActivity extends ViewControllerActivity<?>,
|
|||
private final BehaviorSubject<Boolean> isCreatedSubject = BehaviorSubject.create(true);
|
||||
@NonNull
|
||||
private final BehaviorSubject<Boolean> isStartedSubject = BehaviorSubject.create();
|
||||
@NonNull
|
||||
private final BaseUiBindable baseUiBindable = new BaseUiBindable(isCreatedSubject, isStartedSubject);
|
||||
|
||||
@SuppressWarnings("PMD.UnusedFormalParameter")
|
||||
//UnusedFormalParameter: savedInstanceState could be used by children
|
||||
|
|
@ -130,22 +131,18 @@ public class ViewController<TActivity extends ViewControllerActivity<?>,
|
|||
|
||||
@NonNull
|
||||
public <T> Observable<T> bind(@NonNull final Observable<T> observable) {
|
||||
return isStartedSubject
|
||||
.switchMap(isStarted -> isStarted ? observable.observeOn(AndroidSchedulers.mainThread()) : Observable.never())
|
||||
.takeUntil(isCreatedSubject.filter(created -> !created));
|
||||
return baseUiBindable.bind(observable);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public <T> Observable<T> untilStop(@NonNull final Observable<T> observable) {
|
||||
return observable.observeOn(AndroidSchedulers.mainThread())
|
||||
.takeUntil(isStartedSubject.filter(started -> !started));
|
||||
return baseUiBindable.untilStop(observable);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public <T> Observable<T> untilDestroy(@NonNull final Observable<T> observable) {
|
||||
return observable.observeOn(AndroidSchedulers.mainThread())
|
||||
.takeUntil(isCreatedSubject.filter(created -> !created));
|
||||
return baseUiBindable.untilDestroy(observable);
|
||||
}
|
||||
|
||||
public void onStart() {
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ import android.view.inputmethod.InputMethodManager;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import ru.touchin.roboswag.components.navigation.BaseUiBindable;
|
||||
import ru.touchin.roboswag.components.navigation.UiBindable;
|
||||
import rx.Observable;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.subjects.BehaviorSubject;
|
||||
|
||||
/**
|
||||
|
|
@ -24,9 +24,11 @@ public abstract class BaseActivity extends AppCompatActivity
|
|||
|
||||
private final ArrayList<OnBackPressedListener> onBackPressedListeners = new ArrayList<>();
|
||||
@NonNull
|
||||
private final BehaviorSubject<Boolean> isCreatedSubject = BehaviorSubject.create();
|
||||
@NonNull
|
||||
private final BehaviorSubject<Boolean> isStartedSubject = BehaviorSubject.create();
|
||||
@NonNull
|
||||
private final BehaviorSubject<Boolean> isCreatedSubject = BehaviorSubject.create();
|
||||
private final BaseUiBindable baseUiBindable = new BaseUiBindable(isCreatedSubject, isStartedSubject);
|
||||
|
||||
@Override
|
||||
public void onCreate(final Bundle savedInstanceState, final PersistableBundle persistentState) {
|
||||
|
|
@ -55,21 +57,17 @@ public abstract class BaseActivity extends AppCompatActivity
|
|||
@NonNull
|
||||
@Override
|
||||
public <T> Observable<T> bind(@NonNull final Observable<T> observable) {
|
||||
return isStartedSubject
|
||||
.switchMap(isStarted -> isStarted ? observable.observeOn(AndroidSchedulers.mainThread()) : Observable.never())
|
||||
.takeUntil(isCreatedSubject.filter(created -> !created));
|
||||
return baseUiBindable.bind(observable);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public <T> Observable<T> untilStop(@NonNull final Observable<T> observable) {
|
||||
return observable.observeOn(AndroidSchedulers.mainThread())
|
||||
.takeUntil(isStartedSubject.filter(started -> !started));
|
||||
return baseUiBindable.untilStop(observable);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public <T> Observable<T> untilDestroy(@NonNull final Observable<T> observable) {
|
||||
return observable.observeOn(AndroidSchedulers.mainThread())
|
||||
.takeUntil(isCreatedSubject.filter(created -> !created));
|
||||
return baseUiBindable.untilDestroy(observable);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue