private Func1<TemperatureModel, Observable<TemperatureModel>> requestTemperature() {
final Func2<String, Heating.TemperatureScale, Heating> request = Heating::requestTemperature;
final Func2<OpenSession, TemperatureModel, TemperatureModel> handler = (openSession, temperature) -> {
Heating.handleTemperature(
value -> temperature.setValue(String.valueOf(value)),
() -> temperature.setValue(null))
.call(openSession);
return temperature;
};
return temperature -> commonService.findClient(temperature.getGatewayUuid())
.send(request.call(temperature.getWhere(), preferenceService.getDefaultTemperatureScale()))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(openSession -> handler.call(openSession, temperature))
.onErrorReturn(throwable -> {
log.warn("temperature={} | failing request={}", temperature.getUuid(), Heating.requestTemperature(temperature.getWhere()));
// unreadable temperature
return temperature;
});
}
TemperatureServiceImpl.java 文件源码
java
阅读 20
收藏 0
点赞 0
评论 0
项目:openwebnet-android
作者:
评论列表
文章目录