Right now we are using retrofit like this:
service.executeSomeRequest(UserPreferenceRequest userPreferenceRequest, new Callback
Your custom callback can process the response in the base class first and then delegate to an abstract method.
public interface StatusResponse {
Status getStatus();
}
public abstract class CustomCallback implements Callback {
@Override public final void success(T data, Response response) {
if (data.getStatus() == Status.OK) {
success(data);
} else {
// Handle error..
}
}
public abstract void success(T data);
}