package com.example.rx;
import rx.Observable;
import rx.Subscriber;
/**
* Created by alanchen on 15/9/14.
*/
public class ConvertListener {
interface ValueUpdateListener {
void onValueChanged(String value);
}
//这里就不写list保存了
ValueUpdateListener mValueUpdateListener;
public void setValue(String value) {
if (null != mValueUpdateListener) {
mValueUpdateListener.onValueChanged(value);
}
}
public void registerListener(ValueUpdateListener listener) {
mValueUpdateListener = listener;
}
public void unregisterListener(ValueUpdateListener listener) {
mValueUpdateListener = null;
}
public Observable<String> observableListenerWrapper() {
return Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(final Subscriber<? super String> subscriber) {
ValueUpdateListener listener = new ValueUpdateListener() {
@Override
public void onValueChanged(String value) {
if (subscriber.isUnsubscribed()) {
unregisterListener(this);
} else {
subscriber.onNext(value);
}
}
};
registerListener(listener);
}
});
}
}