正在查看: CallApp v2.226 应用的 RichMediaWebView.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: CallApp v2.226 应用的 RichMediaWebView.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.smaato.sdk.richmedia.widget;
import android.R;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.ConsoleMessage;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.smaato.sdk.core.log.LogDomain;
import com.smaato.sdk.core.log.Logger;
import com.smaato.sdk.core.util.Objects;
import com.smaato.sdk.core.util.StubOnGestureListener;
import com.smaato.sdk.core.util.Threads;
import com.smaato.sdk.core.webview.BaseWebView;
import com.smaato.sdk.core.webview.BaseWebViewClient;
import com.smaato.sdk.core.webview.WebViewHelperUtil;
import com.smaato.sdk.richmedia.mraid.dataprovider.MraidEnvironmentProperties;
import com.smaato.sdk.richmedia.util.RichMediaHtmlUtils;
public final class RichMediaWebView extends BaseWebView {
private Callback callback;
private boolean clicked;
private boolean destroyed;
private final RichMediaHtmlUtils htmlUtils;
private boolean isExpandedWebView;
private boolean loadingStarted;
private final Logger logger;
public interface Callback {
void handleMraidUrl(@NonNull String str, boolean z);
void onAdViolation(@NonNull String str, @NonNull String str2);
void onError();
void onRenderProcessGone();
void onUrlClicked(@NonNull String str);
void onWebViewLoaded();
}
public class a extends StubOnGestureListener {
public a() {
}
@Override
public final boolean onSingleTapUp(MotionEvent motionEvent) {
RichMediaWebView.this.clicked = true;
return true;
}
}
public class b implements BaseWebViewClient.WebViewClientCallback {
public b() {
}
@Override
public final void onGeneralError(int i, String str, String str2) {
RichMediaWebView richMediaWebView = RichMediaWebView.this;
richMediaWebView.logger.debug(LogDomain.WIDGET, "onGeneralError: errorCode = %d, description = %s, failingUrl = %s", Integer.valueOf(i), str, str2);
Objects.onNotNull(richMediaWebView.callback, new com.smaato.sdk.interstitial.view.j(7));
}
@Override
public final void onHttpError(WebResourceRequest webResourceRequest, WebResourceResponse webResourceResponse) {
RichMediaWebView richMediaWebView = RichMediaWebView.this;
richMediaWebView.logger.debug(LogDomain.WIDGET, "onHttpError: request = %s, errorResponse = %s", webResourceRequest, webResourceResponse);
Objects.onNotNull(richMediaWebView.callback, new com.smaato.sdk.interstitial.view.j(7));
}
@Override
public final void onPageFinishedLoading(String str) {
RichMediaWebView richMediaWebView = RichMediaWebView.this;
richMediaWebView.logger.debug(LogDomain.WIDGET, "onPageFinishedLoading: %s", str);
richMediaWebView.setVisibility(0);
Objects.onNotNull(richMediaWebView.callback, new com.smaato.sdk.interstitial.view.j(8));
}
@Override
public final void onPageStartedLoading(String str) {
RichMediaWebView.this.logger.debug(LogDomain.WIDGET, "onPageStartedLoading: %s", str);
}
@Override
public final void onRenderProcessGone() {
Objects.onNotNull(RichMediaWebView.this.callback, new com.smaato.sdk.interstitial.view.j(6));
}
@Override
public final boolean shouldOverrideUrlLoading(String str) {
RichMediaWebView richMediaWebView = RichMediaWebView.this;
Logger logger = richMediaWebView.logger;
LogDomain logDomain = LogDomain.WIDGET;
logger.debug(logDomain, "shouldOverrideUrlLoading: %s", str);
if (str.startsWith("smaato://")) {
Objects.onNotNull(richMediaWebView.callback, new com.smaato.sdk.banner.view.a(11, this, str));
return true;
}
if (str.startsWith("mraid://")) {
return true;
}
if (richMediaWebView.isExpandedWebView && !richMediaWebView.clicked) {
richMediaWebView.loadUrl(str);
return true;
}
if (!richMediaWebView.clicked) {
Objects.onNotNull(richMediaWebView.callback, new h(str, 2));
return true;
}
richMediaWebView.clicked = false;
richMediaWebView.logger.debug(logDomain, "shouldOverrideUrlLoading: going to call Callback::onUrlClicked() with %s", str);
Objects.onNotNull(richMediaWebView.callback, new h(str, 1));
return true;
}
}
public class c extends WebChromeClient {
public static final int b = 0;
public c() {
}
@Override
public final Bitmap getDefaultVideoPoster() {
Bitmap defaultVideoPoster = super.getDefaultVideoPoster();
return defaultVideoPoster != null ? defaultVideoPoster : Bitmap.createBitmap(64, 64, Bitmap.Config.ARGB_8888);
}
@Override
public final boolean onConsoleMessage(ConsoleMessage consoleMessage) {
return !RichMediaWebView.this.htmlUtils.isLoggingEnabled() || super.onConsoleMessage(consoleMessage);
}
@Override
public final boolean onJsAlert(WebView webView, String str, String str2, JsResult jsResult) {
Objects.onNotNull(RichMediaWebView.this.callback, new com.smaato.sdk.interstitial.view.j(11));
jsResult.confirm();
return true;
}
@Override
public final boolean onJsBeforeUnload(WebView webView, String str, String str2, JsResult jsResult) {
Objects.onNotNull(RichMediaWebView.this.callback, new com.smaato.sdk.interstitial.view.j(12));
jsResult.confirm();
return true;
}
@Override
public final boolean onJsConfirm(WebView webView, String str, String str2, JsResult jsResult) {
Objects.onNotNull(RichMediaWebView.this.callback, new com.smaato.sdk.interstitial.view.j(10));
jsResult.confirm();
return true;
}
@Override
public final boolean onJsPrompt(WebView webView, String str, String str2, String str3, JsPromptResult jsPromptResult) {
Objects.onNotNull(RichMediaWebView.this.callback, new com.smaato.sdk.interstitial.view.j(9));
jsPromptResult.confirm();
return true;
}
}
public RichMediaWebView(@NonNull Context context, @NonNull Logger logger, @NonNull RichMediaHtmlUtils richMediaHtmlUtils) {
super((Context) Objects.requireNonNull(context));
this.destroyed = false;
this.clicked = false;
this.loadingStarted = false;
this.isExpandedWebView = false;
this.logger = (Logger) Objects.requireNonNull(logger);
this.htmlUtils = (RichMediaHtmlUtils) Objects.requireNonNull(richMediaHtmlUtils);
initWebView();
}
private WebChromeClient createWebChromeClient() {
return new c();
}
private BaseWebViewClient.WebViewClientCallback createWebViewClientCallback() {
return new b();
}
private void hideScrollbar() {
setHorizontalScrollBarEnabled(false);
setVerticalScrollBarEnabled(false);
}
private void initClickDetector() {
setOnTouchListener(new o(new GestureDetector(getContext(), new a()), 0));
}
private void initWebView() {
hideScrollbar();
setVisibility(4);
setBackgroundColor(getResources().getColor(R.color.transparent));
WebSettings settings = getSettings();
settings.setDisplayZoomControls(false);
settings.setSupportZoom(false);
BaseWebViewClient baseWebViewClient = new BaseWebViewClient();
baseWebViewClient.setWebViewClientCallback(createWebViewClientCallback());
setWebViewClient(baseWebViewClient);
setWebChromeClient(createWebChromeClient());
}
public static boolean lambda$initClickDetector$0(GestureDetector gestureDetector, View view, MotionEvent motionEvent) {
gestureDetector.onTouchEvent(motionEvent);
return false;
}
@Override
public void destroy() {
Threads.ensureMainThread();
if (this.destroyed) {
this.logger.debug(LogDomain.WIDGET, "release() has been already called, ignoring this call", new Object[0]);
} else {
this.destroyed = true;
WebViewHelperUtil.resetAndDestroyWebViewSafely(this);
}
}
public void loadData(@NonNull String str, @NonNull MraidEnvironmentProperties mraidEnvironmentProperties) {
Threads.ensureMainThread();
if (this.loadingStarted) {
return;
}
this.loadingStarted = true;
initClickDetector();
loadHtml(this.htmlUtils.createHtml(str, getContext(), mraidEnvironmentProperties));
}
public void loadUrlContent(@NonNull String str) {
Threads.ensureMainThread();
if (this.loadingStarted) {
return;
}
this.loadingStarted = true;
initClickDetector();
loadUrl(str);
}
public void resetClickedFlag() {
this.clicked = false;
}
public void setCallback(@Nullable Callback callback) {
this.callback = callback;
}
public RichMediaWebView(@NonNull Context context, @NonNull Logger logger, @NonNull RichMediaHtmlUtils richMediaHtmlUtils, boolean z) {
super((Context) Objects.requireNonNull(context));
this.destroyed = false;
this.clicked = false;
this.loadingStarted = false;
this.isExpandedWebView = false;
this.logger = (Logger) Objects.requireNonNull(logger);
this.htmlUtils = (RichMediaHtmlUtils) Objects.requireNonNull(richMediaHtmlUtils);
this.isExpandedWebView = z;
initWebView();
}
}