package io.sentry.okhttp; import io.sentry.Breadcrumb; import io.sentry.Hint; import io.sentry.HttpStatusCodeRange; import io.sentry.IHub; import io.sentry.ISpan; import io.sentry.SentryBaseEvent; import io.sentry.SentryIntegrationPackageStorage; import io.sentry.SpanDataConvention; import io.sentry.TypeCheckHint; import io.sentry.protocol.Response; import io.sentry.util.IntegrationUtils; import io.sentry.util.PropagationTargetsUtils; import java.util.Iterator; import java.util.List; import kotlin.Metadata; import kotlin.Unit; import kotlin.jvm.functions.Function1; import kotlin.jvm.internal.Intrinsics; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.ResponseBody; /* compiled from: SentryOkHttpInterceptor.kt */ @Metadata(d1 = {"\u0000j\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\t\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\b\u0016\u0018\u00002\u00020\u0001:\u0001)B\u0007\b\u0016¢\u0006\u0002\u0010\u0002B\u000f\b\u0016\u0012\u0006\u0010\u0003\u001a\u00020\u0004¢\u0006\u0002\u0010\u0005B\u000f\b\u0016\u0012\u0006\u0010\u0006\u001a\u00020\u0007¢\u0006\u0002\u0010\bBE\u0012\b\b\u0002\u0010\u0003\u001a\u00020\u0004\u0012\n\b\u0002\u0010\u0006\u001a\u0004\u0018\u00010\u0007\u0012\b\b\u0002\u0010\t\u001a\u00020\n\u0012\u000e\b\u0002\u0010\u000b\u001a\b\u0012\u0004\u0012\u00020\r0\f\u0012\u000e\b\u0002\u0010\u000e\u001a\b\u0012\u0004\u0012\u00020\u000f0\f¢\u0006\u0002\u0010\u0010J\u0010\u0010\u0011\u001a\u00020\n2\u0006\u0010\u0012\u001a\u00020\u0013H\u0002J,\u0010\u0014\u001a\u00020\u00152\b\u0010\u0016\u001a\u0004\u0018\u00010\u00172\u0006\u0010\u0018\u001a\u00020\u00192\b\u0010\u001a\u001a\u0004\u0018\u00010\u001b2\u0006\u0010\u001c\u001a\u00020\nH\u0002J\u0010\u0010\u001d\u001a\u00020\u001b2\u0006\u0010\u001e\u001a\u00020\u001fH\u0016J)\u0010 \u001a\u00020\u00152\u0006\u0010\u0018\u001a\u00020\u00192\b\u0010!\u001a\u0004\u0018\u00010\u00132\b\u0010\u001a\u001a\u0004\u0018\u00010\u001bH\u0002¢\u0006\u0002\u0010\"J\u0018\u0010#\u001a\u00020\n2\u0006\u0010\u0018\u001a\u00020\u00192\u0006\u0010\u001a\u001a\u00020\u001bH\u0002J'\u0010$\u001a\u00020\u0015*\u0004\u0018\u00010%2\u0012\u0010&\u001a\u000e\u0012\u0004\u0012\u00020%\u0012\u0004\u0012\u00020\u00150'H\u0002¢\u0006\u0002\u0010(R\u0010\u0010\u0006\u001a\u0004\u0018\u00010\u0007X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\t\u001a\u00020\nX\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u000b\u001a\b\u0012\u0004\u0012\u00020\r0\fX\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u000e\u001a\b\u0012\u0004\u0012\u00020\u000f0\fX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006*"}, d2 = {"Lio/sentry/okhttp/SentryOkHttpInterceptor;", "Lokhttp3/Interceptor;", "()V", "hub", "Lio/sentry/IHub;", "(Lio/sentry/IHub;)V", "beforeSpan", "Lio/sentry/okhttp/SentryOkHttpInterceptor$BeforeSpanCallback;", "(Lio/sentry/okhttp/SentryOkHttpInterceptor$BeforeSpanCallback;)V", "captureFailedRequests", "", "failedRequestStatusCodes", "", "Lio/sentry/HttpStatusCodeRange;", "failedRequestTargets", "", "(Lio/sentry/IHub;Lio/sentry/okhttp/SentryOkHttpInterceptor$BeforeSpanCallback;ZLjava/util/List;Ljava/util/List;)V", "containsStatusCode", "statusCode", "", "finishSpan", "", "span", "Lio/sentry/ISpan;", SentryBaseEvent.JsonKeys.REQUEST, "Lokhttp3/Request;", Response.TYPE, "Lokhttp3/Response;", "isFromEventListener", "intercept", "chain", "Lokhttp3/Interceptor$Chain;", "sendBreadcrumb", "code", "(Lokhttp3/Request;Ljava/lang/Integer;Lokhttp3/Response;)V", "shouldCaptureClientError", "ifHasValidLength", "", "fn", "Lkotlin/Function1;", "(Ljava/lang/Long;Lkotlin/jvm/functions/Function1;)V", "BeforeSpanCallback", "sentry-okhttp"}, k = 1, mv = {1, 8, 0}, xi = 48) /* loaded from: classes3.dex */ public class SentryOkHttpInterceptor implements Interceptor { private final BeforeSpanCallback beforeSpan; private final boolean captureFailedRequests; private final List failedRequestStatusCodes; private final List failedRequestTargets; private final IHub hub; /* compiled from: SentryOkHttpInterceptor.kt */ @Metadata(d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\bæ\u0080\u0001\u0018\u00002\u00020\u0001J$\u0010\u0002\u001a\u0004\u0018\u00010\u00032\u0006\u0010\u0004\u001a\u00020\u00032\u0006\u0010\u0005\u001a\u00020\u00062\b\u0010\u0007\u001a\u0004\u0018\u00010\bH&¨\u0006\t"}, d2 = {"Lio/sentry/okhttp/SentryOkHttpInterceptor$BeforeSpanCallback;", "", "execute", "Lio/sentry/ISpan;", "span", SentryBaseEvent.JsonKeys.REQUEST, "Lokhttp3/Request;", Response.TYPE, "Lokhttp3/Response;", "sentry-okhttp"}, k = 1, mv = {1, 8, 0}, xi = 48) /* loaded from: classes3.dex */ public interface BeforeSpanCallback { ISpan execute(ISpan span, Request request, okhttp3.Response response); } public SentryOkHttpInterceptor(IHub hub, BeforeSpanCallback beforeSpanCallback, boolean z, List failedRequestStatusCodes, List failedRequestTargets) { Intrinsics.checkNotNullParameter(hub, "hub"); Intrinsics.checkNotNullParameter(failedRequestStatusCodes, "failedRequestStatusCodes"); Intrinsics.checkNotNullParameter(failedRequestTargets, "failedRequestTargets"); this.hub = hub; this.beforeSpan = beforeSpanCallback; this.captureFailedRequests = z; this.failedRequestStatusCodes = failedRequestStatusCodes; this.failedRequestTargets = failedRequestTargets; IntegrationUtils.addIntegrationToSdkVersion(getClass()); SentryIntegrationPackageStorage.getInstance().addPackage("maven:io.sentry:sentry-okhttp", "7.4.0"); } /* JADX WARN: Illegal instructions before constructor call */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public /* synthetic */ SentryOkHttpInterceptor(io.sentry.IHub r4, io.sentry.okhttp.SentryOkHttpInterceptor.BeforeSpanCallback r5, boolean r6, java.util.List r7, java.util.List r8, int r9, kotlin.jvm.internal.DefaultConstructorMarker r10) { /* r3 = this; r10 = r9 & 1 if (r10 == 0) goto Lf io.sentry.HubAdapter r4 = io.sentry.HubAdapter.getInstance() java.lang.String r10 = "getInstance()" kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r4, r10) io.sentry.IHub r4 = (io.sentry.IHub) r4 Lf: r10 = r9 & 2 if (r10 == 0) goto L14 r5 = 0 L14: r10 = r5 r5 = r9 & 4 if (r5 == 0) goto L1a r6 = 1 L1a: r0 = r6 r5 = r9 & 8 if (r5 == 0) goto L2c io.sentry.HttpStatusCodeRange r5 = new io.sentry.HttpStatusCodeRange r6 = 500(0x1f4, float:7.0E-43) r7 = 599(0x257, float:8.4E-43) r5.(r6, r7) java.util.List r7 = kotlin.collections.CollectionsKt.listOf(r5) L2c: r1 = r7 r5 = r9 & 16 if (r5 == 0) goto L37 java.lang.String r5 = ".*" java.util.List r8 = kotlin.collections.CollectionsKt.listOf(r5) L37: r2 = r8 r5 = r3 r6 = r4 r7 = r10 r8 = r0 r9 = r1 r10 = r2 r5.(r6, r7, r8, r9, r10) return */ throw new UnsupportedOperationException("Method not decompiled: io.sentry.okhttp.SentryOkHttpInterceptor.(io.sentry.IHub, io.sentry.okhttp.SentryOkHttpInterceptor$BeforeSpanCallback, boolean, java.util.List, java.util.List, int, kotlin.jvm.internal.DefaultConstructorMarker):void"); } /* JADX WARN: Illegal instructions before constructor call */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public SentryOkHttpInterceptor() { /* r2 = this; io.sentry.HubAdapter r0 = io.sentry.HubAdapter.getInstance() java.lang.String r1 = "getInstance()" kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r0, r1) io.sentry.IHub r0 = (io.sentry.IHub) r0 r2.(r0) return */ throw new UnsupportedOperationException("Method not decompiled: io.sentry.okhttp.SentryOkHttpInterceptor.():void"); } /* JADX WARN: 'this' call moved to the top of the method (can break code semantics) */ public SentryOkHttpInterceptor(IHub hub) { this(hub, null, false, null, null, 28, null); Intrinsics.checkNotNullParameter(hub, "hub"); } /* JADX WARN: Illegal instructions before constructor call */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public SentryOkHttpInterceptor(io.sentry.okhttp.SentryOkHttpInterceptor.BeforeSpanCallback r11) { /* r10 = this; java.lang.String r0 = "beforeSpan" kotlin.jvm.internal.Intrinsics.checkNotNullParameter(r11, r0) io.sentry.HubAdapter r0 = io.sentry.HubAdapter.getInstance() java.lang.String r1 = "getInstance()" kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r0, r1) r3 = r0 io.sentry.IHub r3 = (io.sentry.IHub) r3 r5 = 0 r6 = 0 r7 = 0 r8 = 28 r9 = 0 r2 = r10 r4 = r11 r2.(r3, r4, r5, r6, r7, r8, r9) return */ throw new UnsupportedOperationException("Method not decompiled: io.sentry.okhttp.SentryOkHttpInterceptor.(io.sentry.okhttp.SentryOkHttpInterceptor$BeforeSpanCallback):void"); } /* JADX WARN: Removed duplicated region for block: B:48:0x0160 */ /* JADX WARN: Removed duplicated region for block: B:50:? A[SYNTHETIC] */ @Override // okhttp3.Interceptor /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public okhttp3.Response intercept(okhttp3.Interceptor.Chain r13) { /* Method dump skipped, instructions count: 356 To view this dump add '--comments-level debug' option */ throw new UnsupportedOperationException("Method not decompiled: io.sentry.okhttp.SentryOkHttpInterceptor.intercept(okhttp3.Interceptor$Chain):okhttp3.Response"); } private final void sendBreadcrumb(Request request, Integer code, okhttp3.Response response) { final Breadcrumb http = Breadcrumb.http(request.url().getUrl(), request.method(), code); Intrinsics.checkNotNullExpressionValue(http, "http(request.url.toString(), request.method, code)"); RequestBody body = request.body(); ifHasValidLength(body != null ? Long.valueOf(body.contentLength()) : null, new Function1() { // from class: io.sentry.okhttp.SentryOkHttpInterceptor$sendBreadcrumb$1 /* JADX INFO: Access modifiers changed from: package-private */ { super(1); } @Override // kotlin.jvm.functions.Function1 public /* bridge */ /* synthetic */ Unit invoke(Long l) { invoke(l.longValue()); return Unit.INSTANCE; } public final void invoke(long j) { Breadcrumb.this.setData("http.request_content_length", Long.valueOf(j)); } }); Hint hint = new Hint(); hint.set(TypeCheckHint.OKHTTP_REQUEST, request); if (response != null) { ResponseBody body2 = response.body(); ifHasValidLength(body2 != null ? Long.valueOf(body2.getContentLength()) : null, new Function1() { // from class: io.sentry.okhttp.SentryOkHttpInterceptor$sendBreadcrumb$2$1 /* JADX INFO: Access modifiers changed from: package-private */ { super(1); } @Override // kotlin.jvm.functions.Function1 public /* bridge */ /* synthetic */ Unit invoke(Long l) { invoke(l.longValue()); return Unit.INSTANCE; } public final void invoke(long j) { Breadcrumb.this.setData(SpanDataConvention.HTTP_RESPONSE_CONTENT_LENGTH_KEY, Long.valueOf(j)); } }); hint.set(TypeCheckHint.OKHTTP_RESPONSE, response); } this.hub.addBreadcrumb(http, hint); } private final void finishSpan(ISpan span, Request request, okhttp3.Response response, boolean isFromEventListener) { if (span == null) { return; } BeforeSpanCallback beforeSpanCallback = this.beforeSpan; if (beforeSpanCallback == null) { if (isFromEventListener) { return; } span.finish(); } else { if (beforeSpanCallback.execute(span, request, response) == null) { span.getSpanContext().setSampled(false); } if (isFromEventListener) { return; } span.finish(); } } private final void ifHasValidLength(Long l, Function1 function1) { if (l == null || l.longValue() == -1) { return; } function1.invoke(l); } private final boolean shouldCaptureClientError(Request request, okhttp3.Response response) { return this.captureFailedRequests && containsStatusCode(response.code()) && PropagationTargetsUtils.contain(this.failedRequestTargets, request.url().getUrl()); } private final boolean containsStatusCode(int statusCode) { Iterator it = this.failedRequestStatusCodes.iterator(); while (it.hasNext()) { if (it.next().isInRange(statusCode)) { return true; } } return false; } }