导航菜单

页面标题

页面副标题

CallApp v2.226 - POBMraidEndCardView.java 源代码

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

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


package com.pubmatic.sdk.video.player;

import android.R;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Looper;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.mbridge.msdk.playercommon.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.mobilefuse.sdk.MobileFuseDefaults;
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.network.POBNetworkMonitor;
import com.pubmatic.sdk.common.utility.POBCountdownTimer;
import com.pubmatic.sdk.common.utility.POBTimeoutHandler;
import com.pubmatic.sdk.common.utility.POBUtils;
import com.pubmatic.sdk.video.POBVastError;
import com.pubmatic.sdk.webrendering.POBUIUtil;
import com.pubmatic.sdk.webrendering.mraid.POBMraidRenderer;
import com.pubmatic.sdk.webrendering.mraid.POBUseCustomCloseListener;
import com.pubmatic.sdk.webrendering.ui.POBCountdownView;
import com.pubmatic.sdk.webrendering.ui.POBOnSkipOptionUpdateListener;
import java.util.concurrent.TimeUnit;

public class POBMraidEndCardView extends FrameLayout implements POBEndCardRendering, POBAdRendererListener, POBUseCustomCloseListener, View.OnClickListener {
    private com.pubmatic.sdk.video.player.a a;
    private String b;
    private POBMraidRenderer c;
    private int d;
    private final ImageView e;
    private final boolean f;
    private POBOnSkipOptionUpdateListener g;
    private POBCountdownView h;
    private View i;
    private POBTimeoutHandler j;
    private POBCountdownTimer k;
    private boolean l;
    private long m;
    private boolean n;
    private boolean o;
    private int p;

    public class a implements POBTimeoutHandler.POBTimeoutHandlerListener {
        public a() {
        }

        @Override
        public void onTimeout() {
            POBLog.debug("POBMraidEndCardView", "Custom close delay timer exhausted", new Object[0]);
            POBMraidEndCardView pOBMraidEndCardView = POBMraidEndCardView.this;
            pOBMraidEndCardView.a(pOBMraidEndCardView.l, AdaptiveTrackSelection.DEFAULT_MIN_TIME_BETWEEN_BUFFER_REEVALUTATION_MS);
        }
    }

    public class b extends POBCountdownTimer {
        public b(long j, long j2, Looper looper) {
            super(j, j2, looper);
        }

        @Override
        public void onFinish() {
            POBMraidEndCardView.this.g();
            POBLog.debug("POBMraidEndCardView", "Skip button timer exhausted, Skip button is shown", new Object[0]);
        }

        @Override
        public void onTick(long j) {
        }
    }

    public class c implements POBCountdownView.OnTimerExhaustedListener {
        public c() {
        }

        @Override
        public void onTimerExhausted() {
            POBMraidEndCardView.this.c();
            POBLog.debug("POBMraidEndCardView", "Countdown view timer exhausted, Skip button is shown", new Object[0]);
        }
    }

    public POBMraidEndCardView(@NonNull Context context, boolean z) {
        super(context);
        this.f = z;
        setBackgroundColor(getResources().getColor(R.color.black));
        if (z) {
            this.e = POBUIUtil.createSkipButton(context, com.pubmatic.sdk.common.R.id.pob_forward_btn, com.pubmatic.sdk.webrendering.R.drawable.pob_ic_forward_24);
        } else {
            this.e = POBUIUtil.createSkipButton(context, com.pubmatic.sdk.common.R.id.pob_close_btn, com.pubmatic.sdk.common.R.drawable.pob_ic_close_black_24dp);
        }
        this.e.setOnClickListener(this);
        this.e.setVisibility(8);
    }

    private void d() {
        setBackgroundColor(Color.argb(204, 0, 0, 0));
    }

    private void e() {
        POBTimeoutHandler pOBTimeoutHandler = this.j;
        if (pOBTimeoutHandler != null) {
            pOBTimeoutHandler.cancel();
            this.j = null;
        }
    }

    private void f() {
        POBCountdownTimer pOBCountdownTimer = this.k;
        if (pOBCountdownTimer != null) {
            pOBCountdownTimer.cancel();
            this.k = null;
        }
    }

    public void g() {
        this.e.setVisibility(0);
        a(true);
    }

    private void h() {
        POBTimeoutHandler pOBTimeoutHandler = new POBTimeoutHandler(new a());
        this.j = pOBTimeoutHandler;
        pOBTimeoutHandler.start(AdaptiveTrackSelection.DEFAULT_MIN_TIME_BETWEEN_BUFFER_REEVALUTATION_MS);
        this.m = System.currentTimeMillis();
        POBLog.debug("POBMraidEndCardView", "Custom close delay timer started with 2 sec delay", new Object[0]);
    }

    private void i() {
        POBCountdownTimer pOBCountdownTimer = this.k;
        if (pOBCountdownTimer != null) {
            this.o = true;
            pOBCountdownTimer.start();
            POBLog.debug("POBMraidEndCardView", "Skip button timer started", new Object[0]);
        }
    }

    public void destroy() {
        invalidateRenderer();
    }

    @Override
    public FrameLayout getView() {
        return this;
    }

    public void invalidateRenderer() {
        POBMraidRenderer pOBMraidRenderer = this.c;
        if (pOBMraidRenderer != null) {
            pOBMraidRenderer.destroy();
            this.c = null;
        }
    }

    @Override
    public void onAdExpired() {
    }

    @Override
    public void onAdImpression() {
    }

    @Override
    public void onAdInteractionStarted() {
        this.p++;
    }

    @Override
    public void onAdInteractionStopped() {
        int i = this.p - 1;
        this.p = i;
        com.pubmatic.sdk.video.player.a aVar = this.a;
        if (aVar == null || i != 0) {
            return;
        }
        if (this.c != null && this.f) {
            aVar.d();
        } else {
            destroy();
            this.a.onClose();
        }
    }

    @Override
    public void onAdReadyToRefresh(int i) {
    }

    @Override
    public void onAdRender(@NonNull View view, @Nullable POBAdDescriptor pOBAdDescriptor) {
        this.i = view;
        if (view.getParent() != null || pOBAdDescriptor == null) {
            return;
        }
        com.pubmatic.sdk.video.player.a aVar = this.a;
        if (aVar != null) {
            aVar.a();
        }
        POBEndCardUtil.updateEndCardView(view, this, pOBAdDescriptor);
        addView(view, 0);
    }

    @Override
    public void onAdRenderingFailed(@NonNull POBError pOBError) {
        a(new POBVastError(602, "End-card failed to render."));
    }

    @Override
    public void onAdUnload() {
    }

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        if (this.c == null) {
            a(false, 0L);
        } else {
            h();
            onAdInteractionStarted();
        }
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == com.pubmatic.sdk.common.R.id.pob_close_btn) {
            com.pubmatic.sdk.video.player.a aVar = this.a;
            if (aVar != null) {
                aVar.onClose();
                return;
            }
            return;
        }
        if (view.getId() == com.pubmatic.sdk.common.R.id.pob_forward_btn) {
            com.pubmatic.sdk.video.player.a aVar2 = this.a;
            if (aVar2 != null) {
                aVar2.d();
                return;
            }
            return;
        }
        if (view.getId() == com.pubmatic.sdk.video.R.id.pob_learn_more_btn) {
            c();
            com.pubmatic.sdk.video.player.a aVar3 = this.a;
            if (aVar3 != null) {
                aVar3.b();
                return;
            }
            return;
        }
        if (view instanceof POBMraidEndCardView) {
            c();
            com.pubmatic.sdk.video.player.a aVar4 = this.a;
            if (aVar4 != null) {
                aVar4.c();
            }
        }
    }

    @Override
    public void onDetachedFromWindow() {
        if (this.c != null) {
            e();
            f();
        }
        super.onDetachedFromWindow();
    }

    @Override
    public void onLeavingApplication() {
        c();
        com.pubmatic.sdk.video.player.a aVar = this.a;
        if (aVar != null) {
            aVar.onEndCardWillLeaveApp();
        }
    }

    @Override
    public void onRenderAdClick() {
        c();
        com.pubmatic.sdk.video.player.a aVar = this.a;
        if (aVar != null) {
            aVar.a(null, true);
        }
    }

    @Override
    public void onRenderProcessGone() {
        View view = this.i;
        if (view != null) {
            removeView(view);
            this.i = null;
        }
        a(new POBVastError(602, "End-card failed to render."));
    }

    @Override
    public void onWindowFocusChanged(boolean z) {
        super.onWindowFocusChanged(z);
        POBCountdownTimer pOBCountdownTimer = this.k;
        if (pOBCountdownTimer == null) {
            return;
        }
        if (!z) {
            pOBCountdownTimer.pause();
        } else if (this.o) {
            pOBCountdownTimer.resume();
        } else {
            i();
        }
    }

    @Override
    public void render(@Nullable POBAdDescriptor pOBAdDescriptor) {
        if (pOBAdDescriptor == null) {
            b();
            return;
        }
        POBLog.debug("POBMraidEndCardView", "Suitable end-card found.", new Object[0]);
        if (!POBNetworkMonitor.isNetworkAvailable(getContext())) {
            a(new POBVastError(602, "End-card failed to render due to network connectivity."));
        } else {
            if (renderMRAIDView(pOBAdDescriptor)) {
                return;
            }
            a(new POBVastError(604, "No supported resource found for end-card."));
        }
    }

    public boolean renderMRAIDView(@NonNull POBAdDescriptor pOBAdDescriptor) {
        if (POBUtils.isNullOrEmpty(pOBAdDescriptor.getRenderableContent())) {
            POBLog.error("POBMraidEndCardView", "Renderable contents not available.", new Object[0]);
            return false;
        }
        POBMraidRenderer createInstance = POBMraidRenderer.createInstance(getContext(), "interstitial", hashCode());
        this.c = createInstance;
        if (createInstance == null) {
            POBLog.error("POBMraidEndCardView", "Failed to create MRAID Renderer.", new Object[0]);
            return false;
        }
        createInstance.setAdRendererListener(this);
        this.c.setBaseURL(POBInstanceProvider.getSdkConfig().isRequestSecureCreative() ? "https://ow.pubmatic.com/openrtb/2.5" : "http://ow.pubmatic.com/openrtb/2.5");
        this.c.setCustomCloseListener(this);
        this.c.renderAd(pOBAdDescriptor);
        return true;
    }

    public void setFSCEnabled(boolean z) {
        setOnClickListener(z ? this : null);
    }

    @Override
    public void setLearnMoreTitle(@NonNull String str) {
        this.b = str;
    }

    @Override
    public void setListener(@Nullable com.pubmatic.sdk.video.player.a aVar) {
        this.a = aVar;
    }

    @Override
    public void setOnSkipOptionUpdateListener(@Nullable POBOnSkipOptionUpdateListener pOBOnSkipOptionUpdateListener) {
        this.g = pOBOnSkipOptionUpdateListener;
    }

    @Override
    public void setSkipAfter(int i) {
        this.d = i;
    }

    @Override
    public void useCustomClose(boolean z) {
        this.l = z;
        e();
        long max = Math.max(0L, System.currentTimeMillis() - this.m);
        this.m = max;
        a(z, max);
    }

    private void b() {
        a();
        d();
    }

    public void c() {
        POBCountdownView pOBCountdownView = this.h;
        if (pOBCountdownView == null || pOBCountdownView.getParent() != this) {
            return;
        }
        removeView(this.h);
        g();
        this.h = null;
    }

    private void a() {
        POBLog.debug("POBMraidEndCardView", "Rendering Learn More button on end-card.", new Object[0]);
        Resources resources = getResources();
        View a2 = com.pubmatic.sdk.video.player.b.a(getContext(), com.pubmatic.sdk.video.R.id.pob_learn_more_btn, this.b, resources.getColor(com.pubmatic.sdk.webrendering.R.color.pob_controls_background_color));
        FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(-2, resources.getDimensionPixelOffset(com.pubmatic.sdk.webrendering.R.dimen.pob_control_height));
        layoutParams.gravity = 17;
        addView(a2, layoutParams);
        a2.setOnClickListener(this);
    }

    private void a(POBVastError pOBVastError) {
        com.pubmatic.sdk.video.player.a aVar = this.a;
        if (aVar != null) {
            aVar.a(pOBVastError);
        }
        b();
    }

    public void a(boolean z, long j) {
        POBMraidEndCardView pOBMraidEndCardView;
        if (this.n) {
            return;
        }
        this.n = true;
        POBLog.debug("POBMraidEndCardView", "EndCard skipOffset: " + this.d, new Object[0]);
        if (z) {
            pOBMraidEndCardView = this;
            pOBMraidEndCardView.k = pOBMraidEndCardView.new b(a(j), 1L, Looper.getMainLooper());
            if (hasWindowFocus()) {
                i();
            }
        } else {
            pOBMraidEndCardView = this;
            int seconds = pOBMraidEndCardView.d - ((int) TimeUnit.MILLISECONDS.toSeconds(j));
            if (seconds > 0) {
                pOBMraidEndCardView.h = new POBCountdownView(getContext(), seconds);
                a(false);
                pOBMraidEndCardView.h.setTimerExhaustedListener(new c());
                addView(pOBMraidEndCardView.h);
                POBLog.debug("POBMraidEndCardView", "Countdown view timer started", new Object[0]);
            } else {
                g();
            }
        }
        addView(pOBMraidEndCardView.e);
    }

    private long a(long j) {
        return TimeUnit.MILLISECONDS.toSeconds(Math.max(TimeUnit.SECONDS.toMillis(this.d), MobileFuseDefaults.CACHE_MONITOR_MIN_THRESHOLD_MILLIS) - j);
    }

    private void a(boolean z) {
        POBOnSkipOptionUpdateListener pOBOnSkipOptionUpdateListener = this.g;
        if (pOBOnSkipOptionUpdateListener != null) {
            pOBOnSkipOptionUpdateListener.onSkipOptionUpdate(z);
        }
    }
}