正在查看: Barstool v5.21.2 应用的 ApsAdWebViewSupportClient.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Barstool v5.21.2 应用的 ApsAdWebViewSupportClient.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.amazon.aps.ads.util.adview;
import android.net.Uri;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.adsbynimbus.render.mraid.HostKt;
import com.amazon.aps.ads.util.ApsAdExtensionsKt;
import com.amazon.aps.shared.analytics.APSEventSeverity;
import com.amazon.aps.shared.analytics.APSEventType;
import com.amazon.device.ads.DTBAdView;
import com.amazon.device.ads.DTBMetricsConfiguration;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Locale;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.StringCompanionObject;
import kotlin.text.StringsKt;
@Metadata(d1 = {"\u0000T\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\b\u0016\u0018\u0000 \u001e2\u00020\u0001:\u0001\u001eB\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u0012\u0010\n\u001a\u0004\u0018\u00010\u000b2\u0006\u0010\f\u001a\u00020\u0006H\u0002J\u0010\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u0006H\u0002J\u001a\u0010\u0010\u001a\u00020\u00112\b\u0010\u0012\u001a\u0004\u0018\u00010\u00132\u0006\u0010\u000f\u001a\u00020\u0006H\u0016J&\u0010\u0014\u001a\u00020\u00112\b\u0010\u0012\u001a\u0004\u0018\u00010\u00132\b\u0010\u0015\u001a\u0004\u0018\u00010\u00162\b\u0010\u0017\u001a\u0004\u0018\u00010\u0018H\u0016J\u001a\u0010\u0019\u001a\u00020\u000e2\b\u0010\u0012\u001a\u0004\u0018\u00010\u00132\u0006\u0010\u001a\u001a\u00020\u001bH\u0017J\u001e\u0010\u001c\u001a\u0004\u0018\u00010\u000b2\b\u0010\u0012\u001a\u0004\u0018\u00010\u00132\b\u0010\u000f\u001a\u0004\u0018\u00010\u0006H\u0016J\u001c\u0010\u001d\u001a\u00020\u000e2\b\u0010\u0012\u001a\u0004\u0018\u00010\u00132\b\u0010\u000f\u001a\u0004\u0018\u00010\u0006H\u0016R\u0010\u0010\u0005\u001a\u00020\u0006X\u0082D¢\u0006\u0004\n\u0002\b\u0007R\u000e\u0010\b\u001a\u00020\tX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u001f"}, d2 = {"Lcom/amazon/aps/ads/util/adview/ApsAdWebViewSupportClient;", "Lcom/amazon/aps/ads/util/adview/ApsAdWebViewSupportClientBase;", "webviewClientListener", "Lcom/amazon/aps/ads/util/adview/ApsAdWebViewClientListener;", "(Lcom/amazon/aps/ads/util/adview/ApsAdWebViewClientListener;)V", "AMAZON_APP_STORE_LINK", "", "AMAZON_APP_STORE_LINK$1", "schemeHandler", "Lcom/amazon/aps/ads/util/adview/ApsAdWebViewSchemeHandler;", "createImageInjectionResponse", "Landroid/webkit/WebResourceResponse;", "jsScript", "matchesLocalInjectionUrl", "", DTBMetricsConfiguration.APSMETRICS_URL, "onPageFinished", "", "view", "Landroid/webkit/WebView;", "onReceivedError", "request", "Landroid/webkit/WebResourceRequest;", HostKt.ERROR, "Landroid/webkit/WebResourceError;", "onRenderProcessGone", "detail", "Landroid/webkit/RenderProcessGoneDetail;", "shouldInterceptRequest", "shouldOverrideUrlLoading", "Companion", "DTBAndroidSDK_release"}, k = 1, mv = {1, 6, 0}, xi = ConstraintLayout.LayoutParams.Table.LAYOUT_CONSTRAINT_VERTICAL_CHAINSTYLE)
public class ApsAdWebViewSupportClient extends ApsAdWebViewSupportClientBase {
public static final String AMAZON_APP_STORE_LINK = "https://www.amazon.com/gp/mas/dl/android?";
public static final String AMAZON_SCHEME = "amzn";
public static final String GOOGLE_PLAY_STORE_LINK = "https://play.google.com/store/apps/";
public static final String MARKET_SCHEME = "market";
public static final String MOBILE_SHOPPING_SCHEME = "com.amazon.mobile.shopping";
public static final String MOBILE_SHOPPING_WEB_SCHEME = "com.amazon.mobile.shopping.web";
private final String AMAZON_APP_STORE_LINK;
private final ApsAdWebViewSchemeHandler schemeHandler;
private final ApsAdWebViewClientListener webviewClientListener;
public ApsAdWebViewSupportClient(ApsAdWebViewClientListener apsAdWebViewClientListener) {
Intrinsics.checkNotNullParameter(apsAdWebViewClientListener, "webviewClientListener");
this.webviewClientListener = apsAdWebViewClientListener;
this.AMAZON_APP_STORE_LINK = AMAZON_APP_STORE_LINK;
this.schemeHandler = new ApsAdWebViewSchemeHandler(apsAdWebViewClientListener);
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
try {
ApsAdExtensionsKt.d(this, Intrinsics.stringPlus("Should intercept Resource url: ", url));
if (url != null && matchesLocalInjectionUrl(url)) {
String substring = url.substring(StringsKt.lastIndexOf$default(url, '/', 0, false, 6, (Object) null) + 1);
Intrinsics.checkNotNullExpressionValue(substring, "this as java.lang.String).substring(startIndex)");
return createImageInjectionResponse(substring);
}
return super.shouldInterceptRequest(view, url);
} catch (RuntimeException e) {
ApsAdExtensionsKt.logEvent(this, APSEventSeverity.ERROR, APSEventType.EXCEPTION, "Fail to execute shouldInterceptRequest method", e);
return null;
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null) {
try {
if (this.webviewClientListener.isTwoPartExpand()) {
return false;
}
return this.schemeHandler.openUrl(url);
} catch (RuntimeException e) {
ApsAdExtensionsKt.logEvent(this, APSEventSeverity.ERROR, APSEventType.EXCEPTION, "Fail to execute shouldOverrideUrlLoading method", e);
}
}
return false;
}
@Override
public void onPageFinished(WebView view, String url) {
Intrinsics.checkNotNullParameter(url, DTBMetricsConfiguration.APSMETRICS_URL);
ApsAdExtensionsKt.d(this, Intrinsics.stringPlus("Page load completed: ", url));
this.webviewClientListener.onPageFinished(url, view);
}
@Override
public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) {
String str;
Intrinsics.checkNotNullParameter(detail, "detail");
super.onRenderProcessGone(view, detail);
setCrashed(true);
ApsAdExtensionsKt.e(this, "WebView client crashed");
StringBuilder sb = new StringBuilder("Fail to render ad due to webView crash.");
if (view != null) {
if (!(view instanceof DTBAdView)) {
str = "";
} else {
StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
str = String.format("Webview didCrash :%s , Webview rendererPriorityAtExit : %d", Arrays.copyOf(new Object[]{Boolean.valueOf(detail.didCrash()), Integer.valueOf(detail.rendererPriorityAtExit())}, 2));
Intrinsics.checkNotNullExpressionValue(str, "format(format, *args)");
}
this.webviewClientListener.onCrash(view, sb, str);
}
return true;
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
ApsAdExtensionsKt.e(this, "WebView client received OnReceivedError");
try {
this.webviewClientListener.onLoadError();
} catch (RuntimeException e) {
ApsAdExtensionsKt.logEvent(this, APSEventSeverity.ERROR, APSEventType.EXCEPTION, "Fail to execute onReceivedError method", e);
}
}
private final boolean matchesLocalInjectionUrl(String url) {
try {
Locale locale = Locale.US;
Intrinsics.checkNotNullExpressionValue(locale, "US");
String lowerCase = url.toLowerCase(locale);
Intrinsics.checkNotNullExpressionValue(lowerCase, "this as java.lang.String).toLowerCase(locale)");
Uri parse = Uri.parse(lowerCase);
if (parse == null) {
return false;
}
return Intrinsics.areEqual("local", parse.getScheme());
} catch (RuntimeException unused) {
return false;
}
}
private final WebResourceResponse createImageInjectionResponse(String jsScript) {
try {
InputStream open = this.webviewClientListener.getAdViewContext().getAssets().open(jsScript);
Intrinsics.checkNotNullExpressionValue(open, "webviewClientListener.ad…ext.assets.open(jsScript)");
return new WebResourceResponse("image/png", "UTF-8", open);
} catch (Exception e) {
ApsAdExtensionsKt.logEvent(this, APSEventSeverity.ERROR, APSEventType.EXCEPTION, Intrinsics.stringPlus("Failed to get injection response: ", jsScript), e);
return null;
}
}
}