正在查看: BodyTech v7.6.4 应用的 d1.java JAVA 源代码文件
本页面展示 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;
}
}