I'm observing click listener on 2 buttons to increase or decrease counter with the observer below
observer = new Observer<Long>() {
@Override
public void onSubscribe(Disposable disposable) {
compositeDisposable.add(disposable);
}
@Override
public void onNext(Long value) {
// System.out.println(" mObserver onNext() int: " + value);
dataBinding.text1.setText("Observer onNext() int: " + value);
}
@Override
public void onError(Throwable e) {
dataBinding.text1.setText("Observer onError() e: " + e.getMessage());
}
@Override
public void onComplete() {
dataBinding.text1.setText("Observer onComplete()");
}
};
}
And one of the observables i add to button is this
Observable<View> viewObservableMinus = Observable.create(emitter ->
dataBinding.buttonMinus.setOnClickListener(view -> {
System.out.println("Inside onClickListener");
emitter.onNext(view);
emitter.setCancellable(() ->{
System.out.println(" dataBinding.buttonMinus emitter.setCancellable()");
view.setOnClickListener(null);
} );
}));
viewObservableMinus.map(view -> (long) --mCounter).subscribe(observer);
When i touch the button twice i get the messages below and click listener is set to null, why does it set to null? If don't use setCancellable it works fine by the way.
I: Inside onClickListener
I: Inside onClickListener
I: dataBinding.buttonMinus emitter.setCancellable()