导航菜单

页面标题

页面副标题

CallApp v2.226 - RichMediaAdContentView.java 源代码

正在查看: CallApp v2.226 应用的 RichMediaAdContentView.java JAVA 源代码文件

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


package com.smaato.sdk.richmedia.widget;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Rect;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.URLUtil;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.smaato.sdk.core.lifecycle.ActivityProvider;
import com.smaato.sdk.core.log.LogDomain;
import com.smaato.sdk.core.log.Logger;
import com.smaato.sdk.core.openmeasurement.ViewabilityVerificationResource;
import com.smaato.sdk.core.ui.AdContentView;
import com.smaato.sdk.core.ui.ProgressView;
import com.smaato.sdk.core.ui.WatermarkImageButton;
import com.smaato.sdk.core.util.TextUtils;
import com.smaato.sdk.core.util.Threads;
import com.smaato.sdk.core.util.UIUtils;
import com.smaato.sdk.core.util.Whatever;
import com.smaato.sdk.core.util.fi.BiConsumer;
import com.smaato.sdk.core.util.fi.Consumer;
import com.smaato.sdk.richmedia.mraid.RichMediaWebViewFactory;
import com.smaato.sdk.richmedia.mraid.Views;
import com.smaato.sdk.richmedia.mraid.dataprovider.MraidEnvironmentProperties;
import com.smaato.sdk.richmedia.mraid.dataprovider.MraidExpandProperties;
import com.smaato.sdk.richmedia.mraid.mvp.BaseView;
import com.smaato.sdk.richmedia.mraid.presenter.MraidPresenter;
import com.smaato.sdk.richmedia.mraid.presenter.ResizeParams;
import com.smaato.sdk.richmedia.util.ViewUtils;
import com.smaato.sdk.richmedia.widget.ClosableView;
import com.smaato.sdk.richmedia.widget.ResizeManager;
import com.smaato.sdk.richmedia.widget.RichMediaAdContentView;
import com.smaato.sdk.richmedia.widget.RichMediaWebView;
import com.smaato.sdk.richmedia_light.R;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

public final class RichMediaAdContentView extends AdContentView implements BaseView {
    private final FrameLayout content;
    private e expandManager;
    private final Logger logger;
    private final MraidEnvironmentProperties mraidEnvironmentProperties;
    private final MraidPresenter mraidPresenter;
    private ResizeManager resizeManager;
    private final String richMediaCreative;
    private final Callback richMediaViewCallback;
    private RichMediaWebView twoPartWebView;
    private final RichMediaWebView webView;
    private final RichMediaWebViewFactory webViewFactory;

    public interface Callback {
        default void onAdCollapsed(@NonNull RichMediaAdContentView richMediaAdContentView) {
        }

        default void onAdExpanded(@NonNull RichMediaAdContentView richMediaAdContentView) {
        }

        default void onAdResized(@NonNull RichMediaAdContentView richMediaAdContentView) {
        }

        default void onAdViolation(@NonNull String str, @Nullable String str2) {
        }

        default void onHidden(@NonNull RichMediaAdContentView richMediaAdContentView) {
        }

        default void onPlayVideo(@NonNull RichMediaAdContentView richMediaAdContentView, @NonNull String str) {
        }

        default void onRenderProcessGone(@NonNull RichMediaAdContentView richMediaAdContentView) {
        }

        default void onUnloadView(@NonNull RichMediaAdContentView richMediaAdContentView) {
        }

        default void onUrlClicked(@NonNull RichMediaAdContentView richMediaAdContentView, @NonNull String str) {
        }

        default void onUseCustomClose(@NonNull Boolean bool) {
        }

        default void onWebViewError() {
        }

        default void onWebViewLoaded(@NonNull RichMediaAdContentView richMediaAdContentView) {
        }

        default void registerFriendlyObstruction(@NonNull View view) {
        }

        default void removeFriendlyObstruction(@NonNull View view) {
        }

        default void updateAdView(@NonNull RichMediaWebView richMediaWebView) {
        }
    }

    public class a extends RichMediaWebViewCallbackAdapter {
        public boolean a;
        public final FrameLayout b;
        public final boolean c;

        public a(FrameLayout frameLayout, boolean z) {
            this.b = frameLayout;
            this.c = z;
        }

        @Override
        public final void onAdViolation(String str, String str2) {
            this.a = true;
            RichMediaAdContentView.this.richMediaViewCallback.onAdViolation(str, str2);
        }

        @Override
        public final void onRenderProcessGone() {
            RichMediaAdContentView.this.mraidPresenter.onFailedToExpand();
        }

        @Override
        public final void onUrlClicked(String str) {
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            richMediaAdContentView.richMediaViewCallback.onUrlClicked(richMediaAdContentView, str);
        }

        @Override
        public final void onWebViewLoaded() {
            boolean z = this.a;
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            if (z) {
                richMediaAdContentView.mraidPresenter.onFailedToExpand();
            } else {
                if (richMediaAdContentView.expandManager != null) {
                    return;
                }
                richMediaAdContentView.performExpand(this.b, this.c);
                richMediaAdContentView.richMediaViewCallback.updateAdView(richMediaAdContentView.twoPartWebView);
            }
        }
    }

    public class b {
        public final boolean a;

        public b(boolean z) {
            this.a = z;
        }
    }

    public class c implements ResizeManager.Listener {
        public c() {
        }

        @Override
        public final void onCloseClicked(ImageButton imageButton) {
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            richMediaAdContentView.mraidPresenter.handleClose();
            richMediaAdContentView.richMediaViewCallback.removeFriendlyObstruction(imageButton);
        }

        @Override
        public final void onResizeFailed(String str) {
            RichMediaAdContentView.this.mraidPresenter.onFailedToResize(str);
        }

        @Override
        public final void onResized(ImageButton imageButton) {
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            richMediaAdContentView.mraidPresenter.onWasResized();
            richMediaAdContentView.richMediaViewCallback.onAdResized(richMediaAdContentView);
        }
    }

    public class d extends RichMediaWebViewCallbackAdapter {
        public d() {
        }

        @Override
        public final void handleMraidUrl(String str, boolean z) {
            RichMediaAdContentView.this.mraidPresenter.handleMraidUrl(str, z);
        }

        @Override
        public final void onAdViolation(String str, String str2) {
            RichMediaAdContentView.this.richMediaViewCallback.onAdViolation(str, str2);
        }

        @Override
        public final void onError() {
            super.onError();
            RichMediaAdContentView.this.richMediaViewCallback.onWebViewError();
        }

        @Override
        public final void onRenderProcessGone() {
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            richMediaAdContentView.richMediaViewCallback.onRenderProcessGone(richMediaAdContentView);
        }

        @Override
        public final void onUrlClicked(String str) {
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            richMediaAdContentView.richMediaViewCallback.onUrlClicked(richMediaAdContentView, str);
        }

        @Override
        public final void onWebViewLoaded() {
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            richMediaAdContentView.richMediaViewCallback.onWebViewLoaded(richMediaAdContentView);
            richMediaAdContentView.mraidPresenter.onHtmlLoaded();
        }
    }

    private RichMediaAdContentView(Logger logger, Context context, String str, final Callback callback, RichMediaWebViewFactory richMediaWebViewFactory, final RichMediaWebView richMediaWebView, MraidPresenter mraidPresenter, MraidEnvironmentProperties mraidEnvironmentProperties, int i, int i2) {
        super(context);
        this.logger = logger;
        this.richMediaCreative = str;
        this.richMediaViewCallback = callback;
        this.webViewFactory = richMediaWebViewFactory;
        this.mraidPresenter = mraidPresenter;
        this.webView = richMediaWebView;
        this.mraidEnvironmentProperties = mraidEnvironmentProperties;
        i = i > 0 ? UIUtils.dpToPx(context, i) : i;
        i2 = i2 > 0 ? UIUtils.dpToPx(context, i2) : i2;
        FrameLayout frameLayout = new FrameLayout(context);
        this.content = frameLayout;
        addView(frameLayout, AdContentView.generateDefaultLayoutParams(i, i2));
        richMediaWebView.setCallback(createRichMediaWebViewCallback());
        richMediaWebView.setId(R.id.webView);
        frameLayout.addView(richMediaWebView, new FrameLayout.LayoutParams(-1, -1));
        frameLayout.addView(new WatermarkImageButton(getContext()));
        setLayoutParams(new FrameLayout.LayoutParams(i, i2, 17));
        mraidPresenter.setOnExpandCallback(new BiConsumer() {
            @Override
            public final void accept(Object obj, Object obj2) {
                RichMediaAdContentView.this.lambda$new$0(richMediaWebView, (String) obj, (MraidExpandProperties) obj2);
            }
        });
        final int i3 = 0;
        mraidPresenter.setOnOpenCallback(new Consumer(this) {
            public final RichMediaAdContentView b;

            {
                this.b = this;
            }

            @Override
            public final void accept(Object obj) {
                String str2 = (String) obj;
                switch (i3) {
                    case 0:
                        this.b.lambda$new$1(richMediaWebView, callback, str2);
                        break;
                    default:
                        this.b.lambda$new$2(richMediaWebView, callback, str2);
                        break;
                }
            }
        });
        final int i4 = 1;
        mraidPresenter.setOnPlayVideoCallback(new Consumer(this) {
            public final RichMediaAdContentView b;

            {
                this.b = this;
            }

            @Override
            public final void accept(Object obj) {
                String str2 = (String) obj;
                switch (i4) {
                    case 0:
                        this.b.lambda$new$1(richMediaWebView, callback, str2);
                        break;
                    default:
                        this.b.lambda$new$2(richMediaWebView, callback, str2);
                        break;
                }
            }
        });
        final int i5 = 0;
        mraidPresenter.setOnUnloadCallback(new Consumer(this) {
            public final RichMediaAdContentView b;

            {
                this.b = this;
            }

            @Override
            public final void accept(Object obj) {
                Whatever whatever = (Whatever) obj;
                switch (i5) {
                    case 0:
                        this.b.lambda$new$3(callback, whatever);
                        break;
                    default:
                        this.b.lambda$new$6(callback, whatever);
                        break;
                }
            }
        });
        mraidPresenter.setResizeCallback(new com.smaato.sdk.banner.view.a(10, this, richMediaWebView));
        mraidPresenter.setOnCollapseCallback(new k(this, 2));
        final int i6 = 1;
        mraidPresenter.setOnHideCallback(new Consumer(this) {
            public final RichMediaAdContentView b;

            {
                this.b = this;
            }

            @Override
            public final void accept(Object obj) {
                Whatever whatever = (Whatever) obj;
                switch (i6) {
                    case 0:
                        this.b.lambda$new$3(callback, whatever);
                        break;
                    default:
                        this.b.lambda$new$6(callback, whatever);
                        break;
                }
            }
        });
        Objects.requireNonNull(callback);
        mraidPresenter.setAdViolationCallback(new j(callback, 0));
        mraidPresenter.setUseCustomCloseCallback(new com.smaato.sdk.core.mvvm.viewmodel.a(callback, 5));
    }

    @NonNull
    public static RichMediaAdContentView create(@NonNull Logger logger, @NonNull Context context, @NonNull String str, @NonNull Callback callback, @NonNull RichMediaWebViewFactory richMediaWebViewFactory, @NonNull RichMediaWebView richMediaWebView, @NonNull MraidPresenter mraidPresenter, @NonNull MraidEnvironmentProperties mraidEnvironmentProperties, int i, int i2) {
        return new RichMediaAdContentView((Logger) com.smaato.sdk.core.util.Objects.requireNonNull(logger), (Context) com.smaato.sdk.core.util.Objects.requireNonNull(context), (String) com.smaato.sdk.core.util.Objects.requireNonNull(str), (Callback) com.smaato.sdk.core.util.Objects.requireNonNull(callback), (RichMediaWebViewFactory) com.smaato.sdk.core.util.Objects.requireNonNull(richMediaWebViewFactory), (RichMediaWebView) com.smaato.sdk.core.util.Objects.requireNonNull(richMediaWebView), (MraidPresenter) com.smaato.sdk.core.util.Objects.requireNonNull(mraidPresenter), (MraidEnvironmentProperties) com.smaato.sdk.core.util.Objects.requireNonNull(mraidEnvironmentProperties), i, i2);
    }

    private RichMediaWebView.Callback createRichMediaWebViewCallback() {
        return new d();
    }

    private void expand(String str) {
        if (this.expandManager != null) {
            return;
        }
        boolean z = !TextUtils.isEmpty(str) && URLUtil.isNetworkUrl(str);
        if (!z) {
            performExpand(this.content, z);
            return;
        }
        FrameLayout frameLayout = new FrameLayout(getContext());
        WatermarkImageButton watermarkImageButton = new WatermarkImageButton(getContext());
        RichMediaWebView create = this.webViewFactory.create(getContext(), true);
        this.twoPartWebView = create;
        frameLayout.addView(create);
        frameLayout.addView(watermarkImageButton);
        this.twoPartWebView.setCallback(new a(frameLayout, z));
        this.twoPartWebView.loadUrlContent(str);
    }

    public void lambda$new$0(RichMediaWebView richMediaWebView, String str, MraidExpandProperties mraidExpandProperties) {
        richMediaWebView.resetClickedFlag();
        expand(str);
    }

    public void lambda$new$1(RichMediaWebView richMediaWebView, Callback callback, String str) {
        richMediaWebView.resetClickedFlag();
        callback.onUrlClicked(this, str);
    }

    public void lambda$new$2(RichMediaWebView richMediaWebView, Callback callback, String str) {
        richMediaWebView.resetClickedFlag();
        callback.onPlayVideo(this, str);
    }

    public void lambda$new$3(Callback callback, Whatever whatever) {
        callback.onUnloadView(this);
    }

    public void lambda$new$4(RichMediaWebView richMediaWebView, ResizeParams resizeParams) {
        richMediaWebView.resetClickedFlag();
        resize(resizeParams);
    }

    public void lambda$new$5(Whatever whatever) {
        restoreDefaultSize();
    }

    public void lambda$new$6(Callback callback, Whatever whatever) {
        callback.onHidden(this);
    }

    public void lambda$restoreDefaultSize$7() {
        this.mraidPresenter.onWasClosed();
        this.richMediaViewCallback.onAdCollapsed(this);
    }

    public void lambda$restoreDefaultSize$8(ResizeManager resizeManager) {
        resizeManager.getClass();
        Threads.runOnNextUiFrame(new g(resizeManager, 1));
        this.resizeManager = null;
    }

    public void lambda$restoreDefaultSize$9(e eVar) {
        com.smaato.sdk.core.util.Objects.onNotNull(eVar.a, new com.smaato.sdk.core.mvvm.viewmodel.a(eVar, 4));
        this.expandManager = null;
    }

    public void performExpand(View view, boolean z) {
        final e eVar = new e();
        this.expandManager = eVar;
        final b bVar = new b(z);
        Activity currentActivity = ActivityProvider.get().getCurrentActivity();
        if (currentActivity == null) {
            RichMediaAdContentView richMediaAdContentView = RichMediaAdContentView.this;
            richMediaAdContentView.logger.error(LogDomain.RICH_MEDIA, "Failed to expand creative", new Object[0]);
            richMediaAdContentView.mraidPresenter.onFailedToExpand();
            return;
        }
        final ClosableView closableView = new ClosableView(currentActivity);
        closableView.setOnCloseClickListener(new ClosableView.OnCloseClickListener(eVar, bVar, closableView) {
            public final RichMediaAdContentView.b a;
            public final ClosableView b;

            {
                this.a = bVar;
                this.b = closableView;
            }

            @Override
            public final void onCloseClick() {
                e.a(this.a, this.b);
            }
        });
        ViewUtils.removeFromParent(view);
        closableView.addContent(view);
        Dialog dialog = new Dialog(currentActivity, R.style.smaato_sdk_richmedia_expandable_dialog);
        eVar.a = dialog;
        dialog.setContentView(closableView);
        eVar.a.setCanceledOnTouchOutside(false);
        eVar.a.setOnShowListener(new DialogInterface.OnShowListener() {
            @Override
            public final void onShow(DialogInterface dialogInterface) {
                closableView.getCloseButton();
                RichMediaAdContentView richMediaAdContentView2 = RichMediaAdContentView.this;
                richMediaAdContentView2.mraidPresenter.onWasExpanded();
                richMediaAdContentView2.richMediaViewCallback.onAdExpanded(richMediaAdContentView2);
            }
        });
        eVar.a.setOnKeyListener(new DialogInterface.OnKeyListener(eVar, bVar, closableView) {
            public final RichMediaAdContentView.b a;
            public final ClosableView b;

            {
                this.a = bVar;
                this.b = closableView;
            }

            @Override
            public final boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {
                if (i != 4 || keyEvent.getAction() != 1) {
                    return false;
                }
                e.a(this.a, this.b);
                return false;
            }
        });
        eVar.a.show();
    }

    private void resize(ResizeParams resizeParams) {
        if (this.resizeManager == null) {
            ResizeManager resizeManager = new ResizeManager(this.logger, this.content, resizeParams.maxSizeRectInPx);
            this.resizeManager = resizeManager;
            resizeManager.e = new c();
        }
        ResizeManager resizeManager2 = this.resizeManager;
        Rect rect = resizeParams.resizeRectInPx;
        View view = resizeManager2.c;
        View rootView = ViewUtils.getRootView(view);
        boolean z = rootView instanceof ViewGroup;
        Logger logger = resizeManager2.a;
        if (!z) {
            logger.error(LogDomain.RICH_MEDIA, "Cannot find a root view for a resizable-view", new Object[0]);
            com.smaato.sdk.core.util.Objects.onNotNull(resizeManager2.e, new h("Cannot find a root view for a resizable-view", 0));
            return;
        }
        ViewGroup viewGroup = (ViewGroup) rootView;
        Rect rect2 = resizeManager2.b;
        ClosableView closableView = resizeManager2.d;
        if (!closableView.isCloseRegionVisible(rect2, rect)) {
            logger.error(LogDomain.RICH_MEDIA, "The close region cannot appear within the maximum allowed size", new Object[0]);
            com.smaato.sdk.core.util.Objects.onNotNull(resizeManager2.e, new h("The close region cannot appear within the maximum allowed size", 0));
            return;
        }
        if (!closableView.hasContent()) {
            ViewUtils.removeFromParent(view);
            closableView.addContent(view);
            viewGroup.addView(closableView);
        }
        ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) closableView.getLayoutParams();
        marginLayoutParams.width = rect.width();
        marginLayoutParams.height = rect.height();
        marginLayoutParams.topMargin = rect.top;
        marginLayoutParams.leftMargin = rect.left;
        closableView.setLayoutParams(marginLayoutParams);
        Views.addOnPreDrawListener(closableView, new g(resizeManager2, 0));
    }

    private void restoreDefaultSize() {
        if (this.resizeManager != null || this.expandManager != null) {
            ViewUtils.removeFromParent(this.content);
            addView(this.content);
            Views.addOnPreDrawListener(this.content, new com.sinch.verification.core.verification.interceptor.a(this, 12));
        }
        com.smaato.sdk.core.util.Objects.onNotNull(this.resizeManager, new k(this, 0));
        com.smaato.sdk.core.util.Objects.onNotNull(this.expandManager, new k(this, 1));
    }

    @Override
    public void destroy() {
        Threads.ensureMainThread();
        restoreDefaultSize();
        com.smaato.sdk.core.util.Objects.onNotNull(this.twoPartWebView, new com.smaato.sdk.interstitial.view.j(5));
        this.mraidPresenter.destroy();
        Handler newUiHandler = Threads.newUiHandler();
        RichMediaWebView richMediaWebView = this.webView;
        Objects.requireNonNull(richMediaWebView);
        newUiHandler.postDelayed(new com.sinch.verification.core.verification.interceptor.a(richMediaWebView, 13), 1000L);
    }

    @Override
    @NonNull
    public View getViewForOmTracking() {
        return getWebView();
    }

    @Override
    @NonNull
    public View getViewForVisibilityTracking() {
        View rootView = getRootView();
        if (rootView != null) {
            return rootView;
        }
        throw new IllegalStateException("No root view for RichMediaAdContentView found");
    }

    @Override
    public Map<String, List<ViewabilityVerificationResource>> getViewabilityVerificationResourcesMap() {
        return new HashMap();
    }

    @NonNull
    public RichMediaWebView getWebView() {
        return this.webView;
    }

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        this.mraidPresenter.attachView(this);
    }

    @Override
    public void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        this.mraidPresenter.detachView();
    }

    @Override
    public void showProgressIndicator(boolean z) {
        Threads.ensureMainThread();
        if (z) {
            this.content.addView(new ProgressView(getContext()));
        } else {
            this.content.removeView((ProgressView) this.content.findViewById(R.id.smaato_sdk_core_progress_view_id));
        }
    }

    @Override
    public void startShowingView() {
        Threads.ensureMainThread();
        this.webView.loadData(this.richMediaCreative, this.mraidEnvironmentProperties);
    }
}