Skip to content

Instantly share code, notes, and snippets.

@fkruege
Last active February 14, 2016 21:02
Show Gist options
  • Select an option

  • Save fkruege/689444fb80f9a3a50d63 to your computer and use it in GitHub Desktop.

Select an option

Save fkruege/689444fb80f9a3a50d63 to your computer and use it in GitHub Desktop.
RxJavaSubjectsAndZip Gists
private Subject<Boolean, Boolean> mFragmentSubject1 = PublishSubject.create();
private Subject<Boolean, Boolean> mFragmentSubject2 = PublishSubject.create();
private Subject<Boolean, Boolean> mFragmentSubject3 = PublishSubject.create();
public void onResumeInFragment(int fragmentId) {
Log.d(TAG, "onResumeInFragment() fragmendId: " + fragmentId);
switch (fragmentId)
{
case 1:
mFragmentSubject1.onNext(true);
break;
case 2:
mFragmentSubject2.onNext(true);
break;
case 3:
mFragmentSubject3.onNext(true);
break;
}
}
Observable.zip(
mFragmentSubject1.asObservable(), mFragmentSubject2.asObservable(), mFragmentSubject3.asObservable(),
new Func3<Boolean, Boolean, Boolean, Boolean>() {
@Override
public Boolean call(Boolean aBoolean, Boolean aBoolean2, Boolean aBoolean3) {
// you can do special processing here but for simplicity I am just return true
return true;
}
}).subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Boolean aBoolean) {
Log.d(TAG, "All the child Fragments' onResume event fired. Do what I need to do.");
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment