package org.wikipedia.dataclient.okhttp;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.wikipedia.dataclient.okhttp.util.HttpUrlUtil;
import org.wikipedia.settings.RbSwitch;
import java.io.IOException;
import okhttp3.HttpUrl;
import okhttp3.Interceptor;
import okhttp3.Response;
public class StatusResponseInterceptor implements Interceptor {
@NonNull private final RbSwitch cb;
public StatusResponseInterceptor(@NonNull RbSwitch cb) {
this.cb = cb;
}
@Override public Response intercept(Chain chain) throws IOException {
HttpUrl url = chain.request().url();
Response rsp;
try {
rsp = chain.proceed(chain.request());
} catch (Throwable t) {
failure(url, t);
throw t;
}
success(url);
return rsp;
}
private void success(@NonNull HttpUrl url) {
if (HttpUrlUtil.isMobileView(url)) {
cb.onMwSuccess();
}
}
private void failure(@NonNull HttpUrl url, @Nullable Throwable t) {
if (HttpUrlUtil.isRestBase(url)) {
cb.onRbRequestFailed(t);
}
}
}