Slide 171
Slide 171 text
RetrofitͷΤϥʔϋϯυϦϯά
public class RxJavaErrorHandlingCallAdapterFactory extends CallAdapter.Factory {
public static RxJavaErrorHandlingCallAdapterFactory create() {
return new RxJavaErrorHandlingCallAdapterFactory();
}
private final CallAdapter.Factory original = RxJavaCallAdapterFactory.create();
@Override
public CallAdapter, ?> get(Type returnType, Annotation[] annotations, Retrofit retrofit) {
return new RxJavaCallAdapterWrapper(original.get(returnType, annotations, retrofit));
}
private static class RxJavaCallAdapterWrapper
implements CallAdapter> {
private final CallAdapter original;
public RxJavaCallAdapterWrapper(CallAdapter original) {
this.original = original;
}
@Override
public Type responseType() {
return original.responseType();
}
@Override
public Observable> adapt(Call call) {
return ((Observable>) original.adapt(call))
.onErrorResumeNext(new ErrorHandler<>());
}
}
}