正在查看: CallApp v2.226 应用的 POBMraidEndCardView.java JAVA 源代码文件
本页面展示 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);
}
}
}