导航菜单

页面标题

页面副标题

CallApp v2.226 - POBMraidRenderer.java 源代码

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

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


package com.pubmatic.sdk.webrendering.mraid;

import a1.d0;
import android.content.Context;
import android.os.Trace;
import android.view.View;
import android.widget.ImageButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.pubmatic.sdk.common.POBError;
import com.pubmatic.sdk.common.POBInstanceProvider;
import com.pubmatic.sdk.common.base.POBAdDescriptor;
import com.pubmatic.sdk.common.base.POBAdRendererListener;
import com.pubmatic.sdk.common.log.POBLog;
import com.pubmatic.sdk.common.models.POBDeviceInfo;
import com.pubmatic.sdk.common.models.POBImpressionCountingMethod;
import com.pubmatic.sdk.common.network.POBTrackerHandler;
import com.pubmatic.sdk.common.ui.POBBannerRendering;
import com.pubmatic.sdk.common.ui.POBHtmlRendererListener;
import com.pubmatic.sdk.common.utility.POBUrlHandler;
import com.pubmatic.sdk.common.utility.POBUtils;
import com.pubmatic.sdk.common.view.POBWebView;
import com.pubmatic.sdk.common.viewability.POBHTMLMeasurementProvider;
import com.pubmatic.sdk.common.viewability.POBMeasurementProvider;
import com.pubmatic.sdk.common.viewability.POBObstructionUpdateListener;
import com.pubmatic.sdk.webrendering.dsa.POBDsaHtmlContent;
import com.pubmatic.sdk.webrendering.dsa.POBDsaInfoPresenterHelper;
import com.pubmatic.sdk.webrendering.ui.POBAdViewContainer;
import com.pubmatic.sdk.webrendering.ui.POBAdVisibilityListener;
import com.pubmatic.sdk.webrendering.ui.POBHTMLRenderer;
import com.pubmatic.sdk.webrendering.ui.POBHTMLViewClient;
import com.pubmatic.sdk.webrendering.ui.POBViewabilityTracker;

public class POBMraidRenderer implements n, POBBannerRendering, POBHtmlRendererListener, POBObstructionUpdateListener, POBHTMLViewClient.OnRenderProcessGoneListener {
    private final String a;
    private final POBMraidController b;
    private final POBMraidBridge c;
    private final POBHTMLRenderer d;
    private POBAdRendererListener e;
    private POBUseCustomCloseListener f;
    private final POBAdViewContainer g;
    private boolean h;
    private View.OnLayoutChangeListener i;
    private POBAdVisibilityListener j;
    private POBHTMLMeasurementProvider k;
    private String l;
    private final Context m;
    private POBWebView n;
    private POBAdDescriptor o;
    private POBUrlHandler p;
    private POBTrackerHandler q;
    private boolean r;

    public class a implements POBWebView.OnFocusChangedListener {
        public a() {
        }

        @Override
        public void onFocusChanged(boolean z) {
            if (POBMraidRenderer.this.j != null) {
                POBMraidRenderer.this.j.onVisibilityChange(z);
            }
        }
    }

    public class b implements POBMeasurementProvider.POBScriptListener {
        final String a;
        final boolean b;

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

        @Override
        public void onFailedToReceiveMeasurementScript(int i) {
            POBLog.error("POBMraidRenderer", "Failed to fetch OMID JS script.", new Object[0]);
            POBMraidRenderer.this.d.loadHTML(this.a, POBMraidRenderer.this.l, this.b);
        }

        @Override
        public void onMeasurementScriptReceived(String str) {
            StringBuilder s = com.mobilefuse.sdk.assetsmanager.a.s("<script>", str, "</script>");
            s.append(this.a);
            POBMraidRenderer.this.d.loadHTML(s.toString(), POBMraidRenderer.this.l, this.b);
        }
    }

    public class c implements POBViewabilityTracker.OnViewabilityChangedListener {
        final POBViewabilityTracker a;

        public c(POBViewabilityTracker pOBViewabilityTracker) {
            this.a = pOBViewabilityTracker;
        }

        @Override
        public void onViewabilityChanged(boolean z) {
            if (z) {
                POBMraidRenderer.this.d();
                this.a.destroy();
            }
        }
    }

    public class d implements View.OnClickListener {
        final POBAdDescriptor a;

        public class a implements POBDsaHtmlContent.OnContentListener {
            public a() {
            }

            @Override
            public void onPageContentReceived(String str) {
                POBDsaInfoPresenterHelper.show(POBMraidRenderer.this.m, d.this.a, str);
            }
        }

        public d(POBAdDescriptor pOBAdDescriptor) {
            this.a = pOBAdDescriptor;
        }

        @Override
        public void onClick(View view) {
            POBDsaHtmlContent.getHtmlContent(POBMraidRenderer.this.m, new a());
        }
    }

    public class e implements Runnable {
        public e() {
        }

        @Override
        public void run() {
            if (POBMraidRenderer.this.h) {
                POBMraidRenderer.this.c.setMraidState(com.pubmatic.sdk.webrendering.mraid.b.DEFAULT);
            }
            POBMraidRenderer.this.b.initProperties(POBMraidRenderer.this.c, POBMraidRenderer.this.h);
            POBMraidRenderer.this.h = false;
        }
    }

    public class f implements View.OnLayoutChangeListener {
        public f() {
        }

        @Override
        public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
            POBMraidRenderer.this.h();
        }
    }

    public class g implements POBUrlHandler.UrlHandlerListener {
        public g() {
        }

        @Override
        public void onErrorOpenUrl(String str) {
            POBLog.warn("POBMraidRenderer", "Error opening url %s", str);
        }

        @Override
        public void onInternalBrowserClose(String str) {
            POBMraidRenderer.this.c();
        }

        @Override
        public void onInternalBrowserOpen(String str) {
            POBMraidRenderer.this.b();
        }

        @Override
        public void onLeaveApp(String str) {
            POBMraidRenderer.this.onLeavingApplication();
        }
    }

    public class h implements Runnable {
        public h() {
        }

        @Override
        public void run() {
            if (POBMraidRenderer.this.k != null) {
                POBMraidRenderer.this.k.signalAdEvent(POBHTMLMeasurementProvider.POBHTMLAdEventType.IMPRESSION);
            }
        }
    }

    public POBMraidRenderer(@NonNull Context context, @NonNull String str, @NonNull POBAdViewContainer pOBAdViewContainer, int i) {
        this.r = false;
        this.m = context;
        this.a = str;
        this.g = pOBAdViewContainer;
        this.n = pOBAdViewContainer.getAdView();
        this.r = "interstitial".equals(str);
        this.n.getSettings().setJavaScriptEnabled(true);
        this.n.getSettings().setCacheMode(2);
        this.n.setScrollBarStyle(0);
        POBMraidWebClient pOBMraidWebClient = new POBMraidWebClient(this);
        pOBMraidWebClient.disableMultipleOnPageFinished(true);
        POBHTMLRenderer pOBHTMLRenderer = new POBHTMLRenderer(this.n, pOBMraidWebClient);
        this.d = pOBHTMLRenderer;
        pOBHTMLRenderer.setRendererViewListener(this);
        POBMraidBridge pOBMraidBridge = new POBMraidBridge(pOBAdViewContainer);
        this.c = pOBMraidBridge;
        POBMraidController pOBMraidController = new POBMraidController(context, pOBMraidBridge, str, i);
        this.b = pOBMraidController;
        pOBMraidController.setMraidControllerListener(this);
        pOBMraidController.addInlineVideoSupportToWebView(this.n);
        g();
        a(pOBMraidController);
    }

    @Nullable
    public static POBMraidRenderer createInstance(@NonNull Context context, @NonNull String str, int i) {
        POBWebView createInstance = POBWebView.createInstance(context);
        if (createInstance != null) {
            return new POBMraidRenderer(context, str, new POBAdViewContainer(context, createInstance), i);
        }
        return null;
    }

    @Override
    public void addFriendlyObstructions(@NonNull View view, @NonNull POBObstructionUpdateListener.POBFriendlyObstructionPurpose pOBFriendlyObstructionPurpose) {
        POBHTMLMeasurementProvider pOBHTMLMeasurementProvider = this.k;
        if (pOBHTMLMeasurementProvider != null) {
            pOBHTMLMeasurementProvider.addFriendlyObstructions(view, pOBFriendlyObstructionPurpose);
        }
    }

    @Override
    public void destroy() {
        invalidate();
        this.d.destroy();
    }

    public void invalidate() {
        this.b.destroy();
        POBWebView pOBWebView = this.n;
        if (pOBWebView != null) {
            pOBWebView.removeOnLayoutChangeListener(this.i);
            this.n.setOnfocusChangedListener(null);
            this.n = null;
        }
        this.i = null;
        POBHTMLMeasurementProvider pOBHTMLMeasurementProvider = this.k;
        if (pOBHTMLMeasurementProvider != null) {
            pOBHTMLMeasurementProvider.finishAdSession();
            this.k = null;
        }
    }

    @Override
    public void invalidateExpiration() {
    }

    @Override
    public boolean isUserInteracted(boolean z) {
        boolean isUserInteracted = this.d.isUserInteracted();
        if (z) {
            this.d.setUserInteracted(false);
        }
        return isUserInteracted;
    }

    @Override
    public void onAdInteractionStarted() {
        if (!this.r) {
            this.g.resizeDsaIcon(true);
        }
        b();
    }

    @Override
    public void onAdInteractionStopped() {
        if (!this.r) {
            this.g.resizeDsaIcon(false);
        }
        c();
    }

    @Override
    public void onAdUnload() {
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onAdUnload();
        }
    }

    @Override
    public void onAdViewChanged(@NonNull View view) {
        POBHTMLMeasurementProvider pOBHTMLMeasurementProvider = this.k;
        if (pOBHTMLMeasurementProvider != null) {
            pOBHTMLMeasurementProvider.setTrackView(view);
        }
    }

    @Override
    public void onLeavingApplication() {
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onLeavingApplication();
        }
    }

    @Override
    public void onMRAIDAdClick() {
        a();
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onRenderAdClick();
        }
    }

    @Override
    public void onOpen(@Nullable String str) {
        a(str);
    }

    @Override
    public void onRenderProcessGone() {
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onRenderProcessGone();
        }
        invalidate();
        this.d.invalidateWebView();
    }

    @Override
    public void onViewClicked(@Nullable String str) {
        a(str);
    }

    @Override
    public void onViewRendered(@NonNull View view) {
        Trace.endSection();
        if (!this.r) {
            this.b.close();
        }
        this.c.resetPropertyMap();
        this.h = true;
        if (!this.r) {
            h();
        }
        f();
        i();
        POBAdDescriptor pOBAdDescriptor = this.o;
        if (pOBAdDescriptor != null && pOBAdDescriptor.enableDsaInfoIcon()) {
            a(this.o);
        }
        if (this.e != null) {
            a(this.m);
            this.e.onAdRender(this.g, this.o);
            POBAdDescriptor pOBAdDescriptor2 = this.o;
            if (pOBAdDescriptor2 != null && pOBAdDescriptor2.getImpressionCountingMethod() == POBImpressionCountingMethod.ON_LOAD) {
                d();
            }
            POBAdDescriptor pOBAdDescriptor3 = this.o;
            this.e.onAdReadyToRefresh(pOBAdDescriptor3 != null ? pOBAdDescriptor3.getRefreshInterval() : 0);
        }
    }

    @Override
    public void onViewRenderingFailed(@NonNull POBError pOBError) {
        Trace.endSection();
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onAdRenderingFailed(pOBError);
        }
    }

    @Override
    public void removeFriendlyObstructions(@Nullable View view) {
        POBHTMLMeasurementProvider pOBHTMLMeasurementProvider = this.k;
        if (pOBHTMLMeasurementProvider != null) {
            pOBHTMLMeasurementProvider.removeFriendlyObstructions(view);
        }
    }

    @Override
    public void renderAd(@NonNull POBAdDescriptor pOBAdDescriptor) {
        Trace.beginSection("POB Mraid Parsing");
        this.o = pOBAdDescriptor;
        if (pOBAdDescriptor.getImpressionCountingMethod() == POBImpressionCountingMethod.ONE_PX_VIEWABLE) {
            e();
        }
        this.b.addCommandHandlers(this.c, false, this.o.isCompanion());
        String renderableContent = pOBAdDescriptor.getRenderableContent();
        boolean isCompanion = pOBAdDescriptor.isCompanion();
        if (isCompanion && !POBUtils.isNullOrEmpty(renderableContent) && renderableContent.toLowerCase().startsWith("http")) {
            this.d.loadHTML(null, renderableContent, isCompanion);
            return;
        }
        Context applicationContext = this.m.getApplicationContext();
        POBDeviceInfo deviceInfo = POBInstanceProvider.getDeviceInfo(applicationContext);
        StringBuilder y = d0.y(POBMRAIDUtil.getMRAIDEnvironment(POBInstanceProvider.getAppInfo(applicationContext).getPackageName(), deviceInfo.getAdvertisingID(), deviceInfo.getLmtEnabled(), POBInstanceProvider.getSdkConfig().isCoppa()));
        y.append(pOBAdDescriptor.getRenderableContent());
        String sb = y.toString();
        POBHTMLMeasurementProvider pOBHTMLMeasurementProvider = this.k;
        if (pOBHTMLMeasurementProvider != null) {
            pOBHTMLMeasurementProvider.omidJsServiceScript(this.m.getApplicationContext(), new b(sb, isCompanion));
        } else {
            this.d.loadHTML(sb, this.l, isCompanion);
        }
    }

    @Override
    public void setAdRendererListener(@Nullable POBAdRendererListener pOBAdRendererListener) {
        this.e = pOBAdRendererListener;
    }

    public void setBaseURL(@Nullable String str) {
        this.l = str;
    }

    public void setCustomCloseListener(@Nullable POBUseCustomCloseListener pOBUseCustomCloseListener) {
        this.f = pOBUseCustomCloseListener;
    }

    public void setHTMLMeasurementListener(POBHTMLMeasurementProvider pOBHTMLMeasurementProvider) {
        this.k = pOBHTMLMeasurementProvider;
    }

    public void setRenderingTimeout(int i) {
        this.d.setRenderingTimeout(i);
    }

    public void setTrackerHandler(@NonNull POBTrackerHandler pOBTrackerHandler) {
        this.q = pOBTrackerHandler;
    }

    @Override
    public void shouldUseCustomClose(boolean z) {
        POBLog.debug("POBMraidRenderer", "MRAID useCustomClose: %s", Boolean.valueOf(z));
        POBUseCustomCloseListener pOBUseCustomCloseListener = this.f;
        if (pOBUseCustomCloseListener != null) {
            pOBUseCustomCloseListener.useCustomClose(z);
        }
    }

    public void signalImpressionEvent() {
        POBWebView pOBWebView;
        if (this.k == null || (pOBWebView = this.n) == null) {
            return;
        }
        pOBWebView.postDelayed(new h(), 1000L);
    }

    private void b(String str) {
        if (this.p == null || POBUtils.isNullOrEmpty(str) || "https://obplaceholder.click.com/".equals(str)) {
            POBLog.warn("POBMraidRenderer", "Click through url is missing.", new Object[0]);
        } else {
            this.p.open(str);
        }
    }

    public void c() {
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onAdInteractionStopped();
        }
    }

    public void d() {
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onAdImpression();
        }
    }

    private void e() {
        POBWebView pOBWebView = this.n;
        if (pOBWebView != null) {
            POBViewabilityTracker pOBViewabilityTracker = new POBViewabilityTracker((View) pOBWebView, 1);
            pOBViewabilityTracker.setAllowViewTreeObserverRegistration(true);
            pOBViewabilityTracker.setOnExposureChangeWithThresholdListener(new c(pOBViewabilityTracker));
        }
    }

    private void f() {
        if (this.i != null || this.n == null) {
            POBLog.debug("POBMraidRenderer", "layoutChangeListener null", new Object[0]);
            return;
        }
        f fVar = new f();
        this.i = fVar;
        this.n.addOnLayoutChangeListener(fVar);
    }

    private void g() {
        POBWebView pOBWebView = this.n;
        if (pOBWebView != null) {
            pOBWebView.setOnfocusChangedListener(new a());
        }
    }

    public void h() {
        POBWebView pOBWebView = this.n;
        if (pOBWebView != null) {
            pOBWebView.post(new e());
        }
    }

    private void i() {
        POBWebView pOBWebView;
        POBHTMLMeasurementProvider pOBHTMLMeasurementProvider = this.k;
        if (pOBHTMLMeasurementProvider == null || (pOBWebView = this.n) == null) {
            return;
        }
        pOBHTMLMeasurementProvider.startAdSession(pOBWebView);
        this.k.signalAdEvent(POBHTMLMeasurementProvider.POBHTMLAdEventType.LOADED);
        if (this.r) {
            return;
        }
        signalImpressionEvent();
    }

    private void a(POBAdVisibilityListener pOBAdVisibilityListener) {
        this.j = pOBAdVisibilityListener;
    }

    private void a(String str) {
        a();
        b(str);
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onRenderAdClick();
        }
    }

    public void b() {
        POBAdRendererListener pOBAdRendererListener = this.e;
        if (pOBAdRendererListener != null) {
            pOBAdRendererListener.onAdInteractionStarted();
        }
    }

    private void a() {
        POBAdDescriptor pOBAdDescriptor = this.o;
        if (pOBAdDescriptor == null || this.q == null) {
            return;
        }
        this.q.sendTrackers(pOBAdDescriptor.getClickTrackers());
    }

    private void a(POBAdDescriptor pOBAdDescriptor) {
        POBHTMLMeasurementProvider pOBHTMLMeasurementProvider;
        this.g.addDsaIcon(this.r, pOBAdDescriptor.isVideo(), new d(pOBAdDescriptor));
        ImageButton dsaIcon = this.g.getDsaIcon();
        if (dsaIcon == null || (pOBHTMLMeasurementProvider = this.k) == null) {
            return;
        }
        pOBHTMLMeasurementProvider.addFriendlyObstructions(dsaIcon, POBObstructionUpdateListener.POBFriendlyObstructionPurpose.OTHER);
    }

    private void a(Context context) {
        this.p = new POBUrlHandler(context, new g());
    }
}