导航菜单

页面标题

页面副标题

CallApp v2.226 - RichMediaWebView.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();
    }
}