导航菜单

页面标题

页面副标题

BodyTech v7.6.4 - d1.java 源代码

正在查看: BodyTech v7.6.4 应用的 d1.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.stripe.android.view;

import android.content.Intent;
import android.net.Uri;
import android.webkit.URLUtil;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.VisibleForTesting;
import androidx.compose.runtime.internal.StabilityInferred;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import kotlin.Metadata;
import kotlin.Result;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlinx.coroutines.flow.MutableStateFlow;

@StabilityInferred(parameters = 0)
@Metadata(d1 = {"\u0000\\\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u0003\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0014\b\u0000\u0018\u0000 \u00062\u00020\u0001:\u0001\u001aBY\u0012\u0006\u0010\u001c\u001a\u00020\u0019\u0012\f\u0010 \u001a\b\u0012\u0004\u0012\u00020\u000b0\u001d\u0012\u0006\u0010\"\u001a\u00020\u0013\u0012\b\u00104\u001a\u0004\u0018\u00010\u0013\u0012\u0012\u0010%\u001a\u000e\u0012\u0004\u0012\u00020\u0007\u0012\u0004\u0012\u00020\u00020#\u0012\u0014\u0010&\u001a\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u000e\u0012\u0004\u0012\u00020\u00020#¢\u0006\u0004\b5\u00106J\b\u0010\u0003\u001a\u00020\u0002H\u0002J\u0010\u0010\u0006\u001a\u00020\u00022\u0006\u0010\u0005\u001a\u00020\u0004H\u0002J\u0010\u0010\t\u001a\u00020\u00022\u0006\u0010\b\u001a\u00020\u0007H\u0002J\u0010\u0010\n\u001a\u00020\u00022\u0006\u0010\u0005\u001a\u00020\u0004H\u0002J\u0010\u0010\f\u001a\u00020\u000b2\u0006\u0010\u0005\u001a\u00020\u0004H\u0002J\u0010\u0010\r\u001a\u00020\u000b2\u0006\u0010\u0005\u001a\u00020\u0004H\u0002J\u0014\u0010\u0010\u001a\u00020\u00022\n\b\u0002\u0010\u000f\u001a\u0004\u0018\u00010\u000eH\u0002J\u001a\u0010\u0015\u001a\u00020\u00022\u0006\u0010\u0012\u001a\u00020\u00112\b\u0010\u0014\u001a\u0004\u0018\u00010\u0013H\u0016J\u0018\u0010\u0018\u001a\u00020\u000b2\u0006\u0010\u0012\u001a\u00020\u00112\u0006\u0010\u0017\u001a\u00020\u0016H\u0016R\u0014\u0010\u001c\u001a\u00020\u00198\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u001a\u0010\u001bR\u001a\u0010 \u001a\b\u0012\u0004\u0012\u00020\u000b0\u001d8\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u001e\u0010\u001fR\u0014\u0010\"\u001a\u00020\u00138\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0003\u0010!R \u0010%\u001a\u000e\u0012\u0004\u0012\u00020\u0007\u0012\u0004\u0012\u00020\u00020#8\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\r\u0010$R\"\u0010&\u001a\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u000e\u0012\u0004\u0012\u00020\u00020#8\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\f\u0010$R\u0016\u0010(\u001a\u0004\u0018\u00010\u00048\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0010\u0010'R(\u0010-\u001a\u0004\u0018\u00010\u00132\b\u0010)\u001a\u0004\u0018\u00010\u00138\u0006@BX\u0086\u000e¢\u0006\f\n\u0004\b*\u0010!\u001a\u0004\b+\u0010,R\"\u00103\u001a\u00020\u000b8\u0000@\u0000X\u0080\u000e¢\u0006\u0012\n\u0004\b\t\u0010.\u001a\u0004\b/\u00100\"\u0004\b1\u00102¨\u00067"}, d2 = {"Lcom/stripe/android/view/d1;", "Landroid/webkit/WebViewClient;", "", "c", "Landroid/net/Uri;", "uri", "i", "Landroid/content/Intent;", "intent", "h", "k", "", "e", "d", "", "error", "f", "Landroid/webkit/WebView;", "view", "", "url", "onPageFinished", "Landroid/webkit/WebResourceRequest;", "request", "shouldOverrideUrlLoading", "Llh/d;", "a", "Llh/d;", "logger", "Lkotlinx/coroutines/flow/MutableStateFlow;", "b", "Lkotlinx/coroutines/flow/MutableStateFlow;", "isPageLoaded", "Ljava/lang/String;", "clientSecret", "Lkotlin/Function1;", "Lkotlin/jvm/functions/Function1;", "activityStarter", "activityFinisher", "Landroid/net/Uri;", "userReturnUri", "<set-?>", "g", "getCompletionUrlParam", "()Ljava/lang/String;", "completionUrlParam", "Z", "getHasLoadedBlank$payments_core_release", "()Z", "j", "(Z)V", "hasLoadedBlank", "returnUrl", "<init>", "(Llh/d;Lkotlinx/coroutines/flow/MutableStateFlow;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V", "payments-core_release"}, k = 1, mv = {1, 9, 0})
public final class d1 extends WebViewClient {

    public static final Companion INSTANCE = new Companion(null);
    public static final int j = 8;
    private static final Set<String> k;
    private static final Set<String> l;

    private final lh.d logger;

    private final MutableStateFlow<Boolean> isPageLoaded;

    private final String clientSecret;

    private final Function1<Intent, Unit> activityStarter;

    private final Function1<Throwable, Unit> activityFinisher;

    private final Uri userReturnUri;

    private String completionUrlParam;

    private boolean hasLoadedBlank;

    @Metadata(d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0010\"\n\u0002\b\u000b\b\u0080\u0003\u0018\u00002\u00020\u0001B\t\b\u0002¢\u0006\u0004\b\u0011\u0010\u0012J\u0010\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002H\u0002J\u0017\u0010\u0006\u001a\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002H\u0001¢\u0006\u0004\b\u0006\u0010\u0007R\u001a\u0010\t\u001a\b\u0012\u0004\u0012\u00020\u00020\b8\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\t\u0010\nR\u0014\u0010\u000b\u001a\u00020\u00028\u0000X\u0080T¢\u0006\u0006\n\u0004\b\u000b\u0010\fR\u001a\u0010\r\u001a\b\u0012\u0004\u0012\u00020\u00020\b8\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\r\u0010\nR\u0014\u0010\u000e\u001a\u00020\u00028\u0000X\u0080T¢\u0006\u0006\n\u0004\b\u000e\u0010\fR\u0014\u0010\u000f\u001a\u00020\u00028\u0002X\u0082T¢\u0006\u0006\n\u0004\b\u000f\u0010\fR\u0014\u0010\u0010\u001a\u00020\u00028\u0000X\u0080T¢\u0006\u0006\n\u0004\b\u0010\u0010\f¨\u0006\u0013"}, d2 = {"Lcom/stripe/android/view/d1$a;", "", "", "url", "", "b", "c", "(Ljava/lang/String;)Z", "", "AUTHENTICATE_URLS", "Ljava/util/Set;", "BLANK_PAGE", "Ljava/lang/String;", "COMPLETION_URLS", "PARAM_PAYMENT_CLIENT_SECRET", "PARAM_RETURN_URL", "PARAM_SETUP_CLIENT_SECRET", "<init>", "()V", "payments-core_release"}, k = 1, mv = {1, 9, 0})
    public static final class Companion {
        private Companion() {
        }

        public Companion(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }

        public final boolean b(String url) {
            Set set = d1.k;
            if ((set instanceof Collection) && set.isEmpty()) {
                return false;
            }
            Iterator it = set.iterator();
            while (it.hasNext()) {
                if (kotlin.text.s.K(url, (String) it.next(), false, 2, null)) {
                    return true;
                }
            }
            return false;
        }

        @VisibleForTesting
        public final boolean c(String url) {
            kotlin.jvm.internal.r.i(url, "url");
            Set set = d1.l;
            if ((set instanceof Collection) && set.isEmpty()) {
                return false;
            }
            Iterator it = set.iterator();
            while (it.hasNext()) {
                if (kotlin.text.s.K(url, (String) it.next(), false, 2, null)) {
                    return true;
                }
            }
            return false;
        }
    }

    static {
        Set<String> d;
        Set<String> j2;
        d = kotlin.collections.o0.d("https://hooks.stripe.com/three_d_secure/authenticate");
        k = d;
        j2 = kotlin.collections.p0.j("https://hooks.stripe.com/redirect/complete/", "https://hooks.stripe.com/3d_secure/complete/", "https://hooks.stripe.com/3d_secure_2/hosted/complete");
        l = j2;
    }

    public d1(lh.d logger, MutableStateFlow<Boolean> isPageLoaded, String clientSecret, String str, Function1<? super Intent, Unit> activityStarter, Function1<? super Throwable, Unit> activityFinisher) {
        kotlin.jvm.internal.r.i(logger, "logger");
        kotlin.jvm.internal.r.i(isPageLoaded, "isPageLoaded");
        kotlin.jvm.internal.r.i(clientSecret, "clientSecret");
        kotlin.jvm.internal.r.i(activityStarter, "activityStarter");
        kotlin.jvm.internal.r.i(activityFinisher, "activityFinisher");
        this.logger = logger;
        this.isPageLoaded = isPageLoaded;
        this.clientSecret = clientSecret;
        this.activityStarter = activityStarter;
        this.activityFinisher = activityFinisher;
        this.userReturnUri = str != null ? Uri.parse(str) : null;
    }

    private final void c() {
        this.logger.debug("PaymentAuthWebViewClient#hideProgressBar()");
        this.isPageLoaded.setValue(Boolean.TRUE);
    }

    private final boolean d(Uri uri) {
        if (!kotlin.jvm.internal.r.d("stripejs://use_stripe_sdk/return_url", uri.toString())) {
            String uri2 = uri.toString();
            kotlin.jvm.internal.r.h(uri2, "toString(...)");
            if (!kotlin.text.s.K(uri2, "stripesdk://payment_return_url/", false, 2, null)) {
                return false;
            }
        }
        return true;
    }

    private final boolean e(Uri uri) {
        this.logger.debug("PaymentAuthWebViewClient#isReturnUrl()");
        if (d(uri)) {
            return true;
        }
        Uri uri2 = this.userReturnUri;
        if (uri2 != null) {
            return uri2.getScheme() != null && kotlin.jvm.internal.r.d(this.userReturnUri.getScheme(), uri.getScheme()) && this.userReturnUri.getHost() != null && kotlin.jvm.internal.r.d(this.userReturnUri.getHost(), uri.getHost());
        }
        if (uri.isOpaque()) {
            return false;
        }
        Set<String> queryParameterNames = uri.getQueryParameterNames();
        return kotlin.jvm.internal.r.d(this.clientSecret, queryParameterNames.contains("payment_intent_client_secret") ? uri.getQueryParameter("payment_intent_client_secret") : queryParameterNames.contains("setup_intent_client_secret") ? uri.getQueryParameter("setup_intent_client_secret") : null);
    }

    private final void f(Throwable error) {
        this.logger.debug("PaymentAuthWebViewClient#onAuthCompleted()");
        this.activityFinisher.invoke(error);
    }

    static void g(d1 d1Var, Throwable th2, int i, Object obj) {
        if ((i & 1) != 0) {
            th2 = null;
        }
        d1Var.f(th2);
    }

    private final void h(Intent intent) {
        Object b;
        this.logger.debug("PaymentAuthWebViewClient#openIntent()");
        try {
            Result.Companion companion = Result.INSTANCE;
            this.activityStarter.invoke(intent);
            b = Result.b(Unit.a);
        } catch (Throwable th2) {
            Result.Companion companion2 = Result.INSTANCE;
            b = Result.b(kotlin.f.a(th2));
        }
        Throwable e = Result.e(b);
        if (e != null) {
            this.logger.error("Failed to start Intent.", e);
            if (kotlin.jvm.internal.r.d(intent.getScheme(), "alipays")) {
                return;
            }
            f(e);
        }
    }

    private final void i(Uri uri) {
        Object b;
        this.logger.debug("PaymentAuthWebViewClient#openIntentScheme()");
        try {
            Result.Companion companion = Result.INSTANCE;
            Intent parseUri = Intent.parseUri(uri.toString(), 1);
            kotlin.jvm.internal.r.h(parseUri, "parseUri(...)");
            h(parseUri);
            b = Result.b(Unit.a);
        } catch (Throwable th2) {
            Result.Companion companion2 = Result.INSTANCE;
            b = Result.b(kotlin.f.a(th2));
        }
        Throwable e = Result.e(b);
        if (e != null) {
            this.logger.error("Failed to start Intent.", e);
            f(e);
        }
    }

    private final void k(Uri uri) {
        this.logger.debug("PaymentAuthWebViewClient#updateCompletionUrl()");
        Companion companion = INSTANCE;
        String uri2 = uri.toString();
        kotlin.jvm.internal.r.h(uri2, "toString(...)");
        String queryParameter = companion.b(uri2) ? uri.getQueryParameter("return_url") : null;
        if (queryParameter == null || kotlin.text.s.z(queryParameter)) {
            return;
        }
        this.completionUrlParam = queryParameter;
    }

    public final void j(boolean z) {
        this.hasLoadedBlank = z;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        kotlin.jvm.internal.r.i(view, "view");
        this.logger.debug("PaymentAuthWebViewClient#onPageFinished() - " + url);
        super.onPageFinished(view, url);
        if (!this.hasLoadedBlank) {
            c();
        }
        if (url == null || !INSTANCE.c(url)) {
            return;
        }
        this.logger.debug(url + " is a completion URL");
        g(this, null, 1, null);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        boolean x;
        kotlin.jvm.internal.r.i(view, "view");
        kotlin.jvm.internal.r.i(request, "request");
        Uri url = request.getUrl();
        this.logger.debug("PaymentAuthWebViewClient#shouldOverrideUrlLoading(): " + url);
        kotlin.jvm.internal.r.f(url);
        k(url);
        if (e(url)) {
            this.logger.debug("PaymentAuthWebViewClient#shouldOverrideUrlLoading() - handle return URL");
            g(this, null, 1, null);
            return true;
        }
        x = kotlin.text.s.x("intent", url.getScheme(), true);
        if (x) {
            i(url);
            return true;
        }
        if (URLUtil.isNetworkUrl(url.toString())) {
            return super.shouldOverrideUrlLoading(view, request);
        }
        h(new Intent("android.intent.action.VIEW", url));
        return true;
    }
}