导航菜单

页面标题

页面副标题

BodyTech v7.6.4 - ChallengeZoneWebView.java 源代码

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

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


package com.stripe.android.stripe3ds2.views;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.VisibleForTesting;
import com.stripe.android.stripe3ds2.views.ThreeDS2WebViewClient;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.r;
import kotlin.text.Regex;

@Metadata(d1 = {"\u0000>\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0010\u000e\n\u0002\b\u0006\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u000e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\u0005\b\u0000\u0018\u0000 &2\u00020\u00012\u00020\u0002:\u0001&B'\b\u0007\u0012\u0006\u0010\u001f\u001a\u00020\u001e\u0012\n\b\u0002\u0010!\u001a\u0004\u0018\u00010 \u0012\b\b\u0002\u0010#\u001a\u00020\"¢\u0006\u0004\b$\u0010%J\u0010\u0010\u0005\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u0003H\u0002J\u0010\u0010\u0006\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u0003H\u0002J\u0017\u0010\t\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u0003H\u0001¢\u0006\u0004\b\u0007\u0010\bJ\u0010\u0010\u000b\u001a\u00020\n2\b\u0010\u0004\u001a\u0004\u0018\u00010\u0003J\u0012\u0010\u000e\u001a\u00020\n2\b\u0010\r\u001a\u0004\u0018\u00010\fH\u0016R\u0017\u0010\u0010\u001a\u00020\u000f8\u0006¢\u0006\f\n\u0004\b\u0010\u0010\u0011\u001a\u0004\b\u0012\u0010\u0013R$\u0010\u0015\u001a\u00020\u00032\u0006\u0010\u0014\u001a\u00020\u00038\u0016@RX\u0096\u000e¢\u0006\f\n\u0004\b\u0015\u0010\u0016\u001a\u0004\b\u0017\u0010\u0018R$\u0010\r\u001a\u0004\u0018\u00010\f8\u0000@\u0000X\u0080\u000e¢\u0006\u0012\n\u0004\b\r\u0010\u0019\u001a\u0004\b\u001a\u0010\u001b\"\u0004\b\u001c\u0010\u001d¨\u0006'"}, d2 = {"Lcom/stripe/android/stripe3ds2/views/ChallengeZoneWebView;", "Landroid/widget/FrameLayout;", "", "", "html", "transformFormMethod", "transformFormActionUrl", "transformHtml$3ds2sdk_release", "(Ljava/lang/String;)Ljava/lang/String;", "transformHtml", "", "loadHtml", "Landroid/view/View$OnClickListener;", "onClickListener", "setOnClickListener", "Lcom/stripe/android/stripe3ds2/views/ThreeDS2WebView;", "webView", "Lcom/stripe/android/stripe3ds2/views/ThreeDS2WebView;", "getWebView", "()Lcom/stripe/android/stripe3ds2/views/ThreeDS2WebView;", "<set-?>", "userEntry", "Ljava/lang/String;", "getUserEntry", "()Ljava/lang/String;", "Landroid/view/View$OnClickListener;", "getOnClickListener$3ds2sdk_release", "()Landroid/view/View$OnClickListener;", "setOnClickListener$3ds2sdk_release", "(Landroid/view/View$OnClickListener;)V", "Landroid/content/Context;", "context", "Landroid/util/AttributeSet;", "attrs", "", "defStyleAttr", "<init>", "(Landroid/content/Context;Landroid/util/AttributeSet;I)V", "Companion", "3ds2sdk_release"}, k = 1, mv = {1, 9, 0})
public final class ChallengeZoneWebView extends FrameLayout {
    private static final String ENCODING = "UTF-8";
    private static final String HTML_MIME_TYPE = "text/html";
    private static final String METHOD_GET = "method=\"get\"";
    private View.OnClickListener onClickListener;
    private String userEntry;
    private final ThreeDS2WebView webView;
    private static final Companion Companion = new Companion(null);
    private static final Pattern PATTERN_METHOD_POST = Pattern.compile("method=\"post\"", 10);
    private static final Pattern PATTERN_FORM_ACTION = Pattern.compile("action=\"(.+?)\"", 10);

    @Metadata(d1 = {"\u0000\u001c\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\b\u0082\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082T¢\u0006\u0002\n\u0000R\u000e\u0010\u0005\u001a\u00020\u0004X\u0082T¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0004X\u0082T¢\u0006\u0002\n\u0000R\u0016\u0010\u0007\u001a\n \t*\u0004\u0018\u00010\b0\bX\u0082\u0004¢\u0006\u0002\n\u0000R\u0016\u0010\n\u001a\n \t*\u0004\u0018\u00010\b0\bX\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u000b"}, d2 = {"Lcom/stripe/android/stripe3ds2/views/ChallengeZoneWebView$Companion;", "", "()V", "ENCODING", "", "HTML_MIME_TYPE", "METHOD_GET", "PATTERN_FORM_ACTION", "Ljava/util/regex/Pattern;", "kotlin.jvm.PlatformType", "PATTERN_METHOD_POST", "3ds2sdk_release"}, k = 1, mv = {1, 9, 0}, xi = 48)
    private static final class Companion {
        private Companion() {
        }

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

    public ChallengeZoneWebView(Context context) {
        this(context, null, 0, 6, null);
        r.i(context, "context");
    }

    public static final void _init_$lambda$0(ChallengeZoneWebView this$0, String str) {
        r.i(this$0, "this$0");
        if (str == null) {
            str = "";
        }
        this$0.userEntry = str;
        View.OnClickListener onClickListener = this$0.onClickListener;
        if (onClickListener != null) {
            onClickListener.onClick(this$0);
        }
    }

    private final String transformFormActionUrl(String html) {
        String group;
        Matcher matcher = PATTERN_FORM_ACTION.matcher(html);
        return (!matcher.find() || (group = matcher.group(1)) == null || r.d("https://emv3ds/challenge", group)) ? html : new Regex(group).i(html, "https://emv3ds/challenge");
    }

    private final String transformFormMethod(String html) {
        String replaceAll = PATTERN_METHOD_POST.matcher(html).replaceAll(METHOD_GET);
        r.h(replaceAll, "replaceAll(...)");
        return replaceAll;
    }

    public final View.OnClickListener getOnClickListener() {
        return this.onClickListener;
    }

    public String getUserEntry() {
        return this.userEntry;
    }

    public final ThreeDS2WebView getWebView() {
        return this.webView;
    }

    public final void loadHtml(String html) {
        if (html == null) {
            return;
        }
        this.webView.loadDataWithBaseURL(null, transformHtml$3ds2sdk_release(html), HTML_MIME_TYPE, ENCODING, null);
    }

    @Override
    public void setOnClickListener(View.OnClickListener onClickListener) {
        this.onClickListener = onClickListener;
    }

    public final void setOnClickListener$3ds2sdk_release(View.OnClickListener onClickListener) {
        this.onClickListener = onClickListener;
    }

    @VisibleForTesting
    public final String transformHtml$3ds2sdk_release(String html) {
        r.i(html, "html");
        return transformFormActionUrl(transformFormMethod(html));
    }

    public ChallengeZoneWebView(Context context, AttributeSet attributeSet) {
        this(context, attributeSet, 0, 4, null);
        r.i(context, "context");
    }

    public ChallengeZoneWebView(Context context, AttributeSet attributeSet, int i, int i2, DefaultConstructorMarker defaultConstructorMarker) {
        this(context, (i2 & 2) != 0 ? null : attributeSet, (i2 & 4) != 0 ? 0 : i);
    }

    public ChallengeZoneWebView(Context context, AttributeSet attributeSet, int i) {
        super(context, attributeSet, i);
        r.i(context, "context");
        this.userEntry = "";
        li.i b = li.i.b(LayoutInflater.from(context), this);
        r.h(b, "inflate(...)");
        ThreeDS2WebView webView = b.d;
        r.h(webView, "webView");
        this.webView = webView;
        webView.setOnHtmlSubmitListener$3ds2sdk_release(new ThreeDS2WebViewClient.OnHtmlSubmitListener() {
            @Override
            public final void a(String str) {
                ChallengeZoneWebView._init_$lambda$0(ChallengeZoneWebView.this, str);
            }
        });
    }
}