Yuito-app-android/app/src/main/java/net/accelf/yuito/HttpToastInterceptor.java

52 lines
1.2 KiB
Java

package net.accelf.yuito;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.widget.Toast;
import androidx.annotation.NonNull;
import java.io.IOException;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
public final class HttpToastInterceptor implements Interceptor {
private Context context;
public HttpToastInterceptor(Context context) {
this.context = context;
}
@Override
@NonNull
public Response intercept(@NonNull Chain chain) throws IOException {
Request request = chain.request();
Response response;
try {
response = chain.proceed(request);
} catch (Exception e) {
toast(request.method() + " " + request.url() + "\n" + e);
throw e;
}
int code = response.code();
if (code == 200) {
return response;
}
toast(request.method() + " " + request.url() + "\n" + code + " " + response.message());
return response;
}
private void toast(String text) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> Toast.makeText(context, text, Toast.LENGTH_SHORT).show());
}
}