@Override
  public void onStart() {
    super.onStart();
    _subscriptions = new CompositeSubscription();

    ConnectableObservable<Object> tapEventEmitter = _rxBus.toObserverable().publish();

    _subscriptions //
        .add(
        bindSupportFragment(this, tapEventEmitter) //
            .subscribe(
                new Action1<Object>() {
                  @Override
                  public void call(Object event) {
                    if (event instanceof RxBusDemoFragment.TapEvent) {
                      _showTapText();
                    }
                  }
                }));

    _subscriptions //
        .add(
        tapEventEmitter
            .publish(
                new Func1<Observable<Object>, Observable<List<Object>>>() {
                  @Override
                  public Observable<List<Object>> call(Observable<Object> stream) {
                    return stream.buffer(stream.debounce(1, TimeUnit.SECONDS));
                  }
                })
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                new Action1<List<Object>>() {
                  @Override
                  public void call(List<Object> taps) {
                    _showTapCount(taps.size());
                  }
                }));

    _subscriptions.add(tapEventEmitter.connect());
  }
예제 #2
0
 public <T extends RxViewDispatch> void registerRxError(final T object) {
   String tag = object.getClass().getSimpleName() + "_error";
   Subscription subscription = mRxActionMap.get(tag);
   if (subscription == null || subscription.isUnsubscribed()) {
     mRxActionMap.put(
         tag,
         mBus.get()
             .filter(
                 new Func1<Object, Boolean>() {
                   @Override
                   public Boolean call(Object obj) {
                     return obj instanceof RxError;
                   }
                 })
             .subscribe(
                 new Action1<Object>() {
                   @Override
                   public void call(Object obj) {
                     object.onRxError((RxError) obj);
                   }
                 }));
   }
 }
예제 #3
0
 public void postRxStoreChange(final RxStoreChange storeChange) {
   mBus.send(storeChange);
 }
예제 #4
0
 public void postRxAction(final RxAction action) {
   mBus.send(action);
 }