private Single<Location> getLocation(LocationRequest request) {
if (!shouldRequestNewLocation()) {
return Single.just(mLastLocation);
}
return mFusedLocation.getLocation(request)
.doOnSuccess(new Consumer<Location>() {
@Override
public void accept(Location location) throws Exception {
setLocationCache(location);
}
})
.timeout(LOCATION_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)
.onErrorResumeNext(new Function<Throwable, SingleSource<? extends Location>>() {
@Override
public SingleSource<? extends Location> apply(Throwable e) throws Exception {
if (e instanceof TimeoutException && mLastLocation == null) {
return Single.error(new LocationTimeoutException());
} else if (mLastLocation == null) {
return Single.error(e);
} else {
return Single.just(mLastLocation);
}
}
});
}
LocationRepository.java 文件源码
java
阅读 44
收藏 0
点赞 0
评论 0
项目:My-Android-Base-Code
作者:
评论列表
文章目录