
cn.leancloud.core.PushClient Maven / Gradle / Ivy
package cn.leancloud.core;
import cn.leancloud.service.PushService;
import cn.leancloud.utils.ErrorUtils;
import cn.leancloud.json.JSONObject;
import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
import java.util.Map;
public class PushClient {
private PushService service = null;
private boolean asynchronized = false;
private AppConfiguration.SchedulerCreator defaultCreator = null;
public PushClient(PushService service, boolean asyncRequest, AppConfiguration.SchedulerCreator observerSchedulerCreator) {
this.service = service;
this.asynchronized = AppConfiguration.isAsynchronized();
this.defaultCreator = AppConfiguration.getDefaultScheduler();
PaasClient.getGlobalOkHttpClient();
}
public Observable sendPushRequest(Map param) {
return wrapObservable(service.sendPushRequest(JSONObject.Builder.create(param)));
}
private Observable wrapObservable(Observable observable) {
if (null == observable) {
return null;
}
if (asynchronized) {
observable = observable.subscribeOn(Schedulers.io());
}
if (null != defaultCreator) {
observable = observable.observeOn(defaultCreator.create());
}
observable = observable.onErrorResumeNext(new Function() {
@Override
public ObservableSource apply(Throwable throwable) throws Exception {
return Observable.error(ErrorUtils.propagateException(throwable));
}
});
return observable;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy