**
* 获取省信息
* @param listener 回调
*/
public void getProvince(MainListener listener) {
HttpRx.normal(getApiManager().province())
.subscribe(new MySubscriber<List<Province>>() {
@Override
protected void onSuccess(List<Province> provinces) {
Logger.d(provinces);
listener.setProvinces(provinces);
}
});
}
public static <T extends Result<R>,R> Flowable<R> normal(Flowable<T> followable) {
return followable.subscribeOn(Schedulers.io())
.map(new ResultFunction<>())
.observeOn(AndroidSchedulers.mainThread());
}
public class ResultFunction<T extends Result<R>,R> implements Function<T,R> {
@Override
public R apply(T t) throws Exception {
if (t.getCode() == 1) {
if (t.getData() != null) {
return t.getData();
}
throw new ResultException(ResultException.TYPE_CODE_SUCCESS,"data is null");
}
throw new ResultException(ResultException.TYPE_CODE_FAIL,t.getMsg());
}
}