正在查看: CallApp v2.226 应用的 VideoPlayer.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: CallApp v2.226 应用的 VideoPlayer.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.mobilefuse.videoplayer;
import a1.d0;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Point;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.Window;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.text.ttml.TtmlNode;
import com.mobilefuse.sdk.DebuggingKt;
import com.mobilefuse.sdk.MuteChangedListener;
import com.mobilefuse.sdk.StabilityHelper;
import com.mobilefuse.sdk.Utils;
import com.mobilefuse.sdk.ad.AdSkipOffsetResolver;
import com.mobilefuse.sdk.assetsmanager.MobileFuseAssetManager;
import com.mobilefuse.sdk.assetsmanager.a;
import com.mobilefuse.sdk.concurrency.Schedulers;
import com.mobilefuse.sdk.concurrency.SchedulersKt;
import com.mobilefuse.sdk.exception.Either;
import com.mobilefuse.sdk.exception.ErrorResult;
import com.mobilefuse.sdk.exception.ExceptionHandlingStrategy;
import com.mobilefuse.sdk.exception.SuccessResult;
import com.mobilefuse.sdk.logging.HttpRequestTracker;
import com.mobilefuse.sdk.omid.VastOmidBridge;
import com.mobilefuse.sdk.rx.FlowCollector;
import com.mobilefuse.sdk.rx.FlowKt;
import com.mobilefuse.sdk.utils.WebViewUtils;
import com.mobilefuse.sdk.video.AdmClickInfo;
import com.mobilefuse.sdk.video.AdmClickInfoProvider;
import com.mobilefuse.sdk.video.ClickthroughBehaviour;
import com.mobilefuse.sdk.video.ClickthroughBehaviourKt;
import com.mobilefuse.videoplayer.VideoDownloader;
import com.mobilefuse.videoplayer.VideoPlayer;
import com.mobilefuse.videoplayer.controller.ExternalFullscreenControlBridge;
import com.mobilefuse.videoplayer.controller.FullscreenChangedListener;
import com.mobilefuse.videoplayer.controller.FullscreenController;
import com.mobilefuse.videoplayer.controller.FullscreenControllerImpl;
import com.mobilefuse.videoplayer.controller.MuteController;
import com.mobilefuse.videoplayer.controller.MuteControllerImpl;
import com.mobilefuse.videoplayer.controller.PlaybackController;
import com.mobilefuse.videoplayer.endcard.EndCardListener;
import com.mobilefuse.videoplayer.endcard.EndCardPresenter;
import com.mobilefuse.videoplayer.endcard.scheduler.BaseEndCardScheduler;
import com.mobilefuse.videoplayer.endcard.scheduler.EndCardScheduler;
import com.mobilefuse.videoplayer.media.MediaPlayerState;
import com.mobilefuse.videoplayer.media.MobileFusePlayer;
import com.mobilefuse.videoplayer.model.AdAutoplay;
import com.mobilefuse.videoplayer.model.VastBaseResource;
import com.mobilefuse.videoplayer.model.VastClickThrough;
import com.mobilefuse.videoplayer.model.VastCompanion;
import com.mobilefuse.videoplayer.model.VastDataModelExtensionsKt;
import com.mobilefuse.videoplayer.model.VastError;
import com.mobilefuse.videoplayer.model.VastIcon;
import com.mobilefuse.videoplayer.model.VastMediaFile;
import com.mobilefuse.videoplayer.model.VastPlayerCapability;
import com.mobilefuse.videoplayer.model.VastTime;
import com.mobilefuse.videoplayer.model.VastTrackingEventType;
import com.mobilefuse.videoplayer.model.VideoSource;
import com.mobilefuse.videoplayer.model.utils.StringEncodingAndFormattingKt;
import com.mobilefuse.videoplayer.network.NetworkUtils;
import com.mobilefuse.videoplayer.utils.MediaUtilsKt;
import com.mobilefuse.videoplayer.view.ViewCloseTrigger;
import com.pubmatic.sdk.nativead.POBNativeConstants;
import com.smaato.sdk.video.vast.model.Icon;
import com.smaato.sdk.video.vast.model.VastTree;
import com.twilio.voice.EventGroupType;
import com.twilio.voice.EventKeys;
import com.vungle.ads.internal.e;
import java.util.Iterator;
import java.util.List;
import kotlin.Metadata;
import kotlin.NoWhenBranchMatchedException;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.r;
import org.jetbrains.annotations.NotNull;
import org.json.JSONObject;
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000Ô\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\n\n\u0002\u0010\u0007\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\t\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u000f\n\u0002\u0018\u0002\n\u0002\b\f\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u000b\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\u000e\n\u0002\b\t\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\t\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0015\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0019\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\t\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\b\u0018\u00002\u00020\u00012\u00020\u00022\u00020\u0003:\u0006\u0089\u0002\u008a\u0002\u008b\u0002B\u000f\b\u0016\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006B\u0019\b\u0016\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\b\u0010\u0007\u001a\u0004\u0018\u00010\b¢\u0006\u0002\u0010\tB!\b\u0016\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\b\u0010\u0007\u001a\u0004\u0018\u00010\b\u0012\u0006\u0010\n\u001a\u00020\u000b¢\u0006\u0002\u0010\fB=\b\u0002\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\b\u0010\u0007\u001a\u0004\u0018\u00010\b\u0012\u0006\u0010\n\u001a\u00020\u000b\u0012\u0006\u0010\r\u001a\u00020\u000e\u0012\b\b\u0002\u0010\u000f\u001a\u00020\u0010\u0012\b\b\u0002\u0010\u0011\u001a\u00020\u0012¢\u0006\u0002\u0010\u0013J\u0013\u0010²\u0001\u001a\u00020|2\b\u0010³\u0001\u001a\u00030´\u0001H\u0002J\t\u0010µ\u0001\u001a\u00020|H\u0002J\t\u0010¶\u0001\u001a\u00020|H\u0002J\t\u0010·\u0001\u001a\u00020'H\u0002J\u0019\u0010¸\u0001\u001a\u00020|2\b\u0010¹\u0001\u001a\u00030£\u0001H\u0000¢\u0006\u0003\bº\u0001J\u0013\u0010»\u0001\u001a\u00020|2\b\u0010¼\u0001\u001a\u00030\u0098\u0001H\u0002J\f\u0010½\u0001\u001a\u0005\u0018\u00010¾\u0001H\u0002J\u0018\u0010¿\u0001\u001a\u00020|2\r\u0010À\u0001\u001a\b\u0012\u0004\u0012\u00020|0{H\u0003J\u0007\u0010Á\u0001\u001a\u00020|J\t\u0010Â\u0001\u001a\u00020|H\u0002J\t\u0010Ã\u0001\u001a\u00020|H\u0002J\u0014\u0010Ä\u0001\u001a\u00020|2\b\u0010Å\u0001\u001a\u00030Æ\u0001H\u0096\u0001J\u0007\u0010Ç\u0001\u001a\u00020\u000eJ\n\u0010È\u0001\u001a\u0005\u0018\u00010É\u0001J\n\u0010Ê\u0001\u001a\u0005\u0018\u00010É\u0001J\u0013\u0010Ë\u0001\u001a\u00020|2\b\u0010Ì\u0001\u001a\u00030Í\u0001H\u0002J\u0018\u0010Î\u0001\u001a\u00020|2\r\u0010À\u0001\u001a\b\u0012\u0004\u0012\u00020|0{H\u0002J\n\u0010Ï\u0001\u001a\u00020\u000eH\u0096\u0001J\u000f\u0010Ð\u0001\u001a\u00020\u000eH\u0000¢\u0006\u0003\bÑ\u0001J\u0007\u0010Ò\u0001\u001a\u00020\u000eJ\u0019\u0010Ó\u0001\u001a\u00020|2\b\u0010Ô\u0001\u001a\u00030£\u00012\u0006\u0010c\u001a\u00020dJ\u0007\u0010Õ\u0001\u001a\u00020|J\u0007\u0010Ö\u0001\u001a\u00020|J\t\u0010×\u0001\u001a\u00020|H\u0002J\t\u0010Ø\u0001\u001a\u00020|H\u0014J\t\u0010Ù\u0001\u001a\u00020|H\u0014J\t\u0010Ú\u0001\u001a\u00020|H\u0002J6\u0010Û\u0001\u001a\u00020|2\u0007\u0010Ü\u0001\u001a\u00020\u000e2\u0007\u0010Ý\u0001\u001a\u00020\u000b2\u0007\u0010Þ\u0001\u001a\u00020\u000b2\u0007\u0010ß\u0001\u001a\u00020\u000b2\u0007\u0010à\u0001\u001a\u00020\u000bH\u0014J\u0014\u0010á\u0001\u001a\u00020|2\t\u0010â\u0001\u001a\u0004\u0018\u000107H\u0002J\t\u0010ã\u0001\u001a\u00020|H\u0002J \u0010ä\u0001\u001a\u00020|2\u0007\u0010å\u0001\u001a\u00020\u000e2\f\b\u0002\u0010æ\u0001\u001a\u0005\u0018\u00010ç\u0001H\u0002J\n\u0010è\u0001\u001a\u00020|H\u0096\u0001J\n\u0010é\u0001\u001a\u00020|H\u0096\u0001J\u0013\u0010ê\u0001\u001a\u00020|2\b\u0010ë\u0001\u001a\u00030ì\u0001H\u0002J\t\u0010í\u0001\u001a\u00020|H\u0002J\u0012\u0010î\u0001\u001a\u00020|2\u0007\u0010ï\u0001\u001a\u00020AH\u0002J\u001c\u0010ð\u0001\u001a\u00020|2\b\u0010ñ\u0001\u001a\u00030ò\u00012\u0007\u0010ó\u0001\u001a\u00020\u000bH\u0014J\u0007\u0010ô\u0001\u001a\u00020|J\u001d\u0010õ\u0001\u001a\u00020|2\n\u0010ö\u0001\u001a\u0005\u0018\u00010\u009d\u00012\b\u0010\u0086\u0001\u001a\u00030\u0087\u0001J\t\u0010÷\u0001\u001a\u00020|H\u0002J\t\u0010ø\u0001\u001a\u00020|H\u0002J\u0007\u0010ù\u0001\u001a\u00020|J\u0013\u0010ú\u0001\u001a\u00020|2\b\u0010û\u0001\u001a\u00030ü\u0001H\u0002J\u0012\u0010ý\u0001\u001a\u00020|2\u0006\u0010R\u001a\u00020\u000eH\u0096\u0001J\n\u0010þ\u0001\u001a\u00020|H\u0096\u0001J\n\u0010ÿ\u0001\u001a\u00020|H\u0096\u0001J\u0013\u0010\u0080\u0002\u001a\u00020|2\u0007\u0010\u0081\u0002\u001a\u00020\u000eH\u0096\u0001J\u0013\u0010\u0082\u0002\u001a\u00020|2\n\u0010\u0083\u0002\u001a\u0005\u0018\u00010\u0084\u0002J\u0013\u0010\u0085\u0002\u001a\u00020|2\b\u0010ë\u0001\u001a\u00030ì\u0001H\u0002J\t\u0010\u0086\u0002\u001a\u00020|H\u0002J\t\u0010\u0087\u0002\u001a\u00020|H\u0002J\t\u0010\u0088\u0002\u001a\u00020|H\u0002R$\u0010\u0016\u001a\u00020\u00152\u0006\u0010\u0014\u001a\u00020\u0015@@X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0017\u0010\u0018\"\u0004\b\u0019\u0010\u001aR\u001c\u0010\u001b\u001a\u0004\u0018\u00010\u001cX\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u001d\u0010\u001e\"\u0004\b\u001f\u0010 R\u001a\u0010!\u001a\u00020\u000eX\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\"\u0010#\"\u0004\b$\u0010%R\u001a\u0010&\u001a\u00020'X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b(\u0010)\"\u0004\b*\u0010+R\u001a\u0010,\u001a\u00020-X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b.\u0010/\"\u0004\b0\u00101R\u0014\u00102\u001a\u000203X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b4\u00105R\u0010\u00106\u001a\u0004\u0018\u000107X\u0082\u000e¢\u0006\u0002\n\u0000R\u0013\u00108\u001a\u0004\u0018\u0001098F¢\u0006\u0006\u001a\u0004\b:\u0010;R\u0011\u0010<\u001a\u00020=8F¢\u0006\u0006\u001a\u0004\b>\u0010?R\u0010\u0010@\u001a\u0004\u0018\u00010AX\u0082\u000e¢\u0006\u0002\n\u0000R\"\u0010C\u001a\u0004\u0018\u00010B2\b\u0010\u0014\u001a\u0004\u0018\u00010B@BX\u0080\u000e¢\u0006\b\n\u0000\u001a\u0004\bD\u0010ER\u001a\u0010F\u001a\u00020GX\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\bH\u0010I\"\u0004\bJ\u0010KR\u0018\u0010L\u001a\u00020\u000eX\u0096\u000f¢\u0006\f\u001a\u0004\bM\u0010#\"\u0004\bN\u0010%R\u001a\u0010O\u001a\u00020'X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\bP\u0010)\"\u0004\bQ\u0010+R\u0012\u0010R\u001a\u00020\u000eX\u0096\u0005¢\u0006\u0006\u001a\u0004\bS\u0010#R\u0012\u0010T\u001a\u00020\u000eX\u0096\u0005¢\u0006\u0006\u001a\u0004\bU\u0010#R\u001a\u0010V\u001a\u0004\u0018\u00010WX\u0096\u000f¢\u0006\f\u001a\u0004\bX\u0010Y\"\u0004\bZ\u0010[R\u000e\u0010\u000f\u001a\u00020\u0010X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\\\u001a\u00020\u000eX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010]\u001a\u00020\u000eX\u0082\u000e¢\u0006\u0002\n\u0000R\u0014\u0010^\u001a\u00020\u000e8@X\u0080\u0004¢\u0006\u0006\u001a\u0004\b_\u0010#R\u0012\u0010`\u001a\u00020\u000eX\u0096\u0005¢\u0006\u0006\u001a\u0004\b`\u0010#R\u000e\u0010a\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010b\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010c\u001a\u0004\u0018\u00010dX\u0082\u000e¢\u0006\u0002\n\u0000R\u0014\u0010e\u001a\u00020\u0001X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\bf\u0010gR\u001a\u0010h\u001a\u00020iX\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\bj\u0010k\"\u0004\bl\u0010mR$\u0010o\u001a\u00020\u000b2\u0006\u0010n\u001a\u00020\u000b@FX\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\bp\u0010q\"\u0004\br\u0010sR\u001a\u0010t\u001a\u0004\u0018\u00010uX\u0096\u000f¢\u0006\f\u001a\u0004\bv\u0010w\"\u0004\bx\u0010yR\u000e\u0010\u0011\u001a\u00020\u0012X\u0082\u0004¢\u0006\u0002\n\u0000R#\u0010z\u001a\n\u0012\u0004\u0012\u00020|\u0018\u00010{X\u0086\u000e¢\u0006\u000f\n\u0000\u001a\u0004\b}\u0010~\"\u0005\b\u007f\u0010\u0080\u0001R\u000f\u0010\u0081\u0001\u001a\u00020=X\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\u0082\u0001\u001a\u00030\u0083\u0001X\u0082\u0004¢\u0006\u0002\n\u0000R \u0010\u0084\u0001\u001a\u00020=2\u0006\u0010\u0014\u001a\u00020=@BX\u0086\u000e¢\u0006\t\n\u0000\u001a\u0005\b\u0085\u0001\u0010?R\"\u0010\u0086\u0001\u001a\u0005\u0018\u00010\u0087\u0001X\u0080\u000e¢\u0006\u0012\n\u0000\u001a\u0006\b\u0088\u0001\u0010\u0089\u0001\"\u0006\b\u008a\u0001\u0010\u008b\u0001R\u0018\u0010\u008c\u0001\u001a\u00030\u008d\u0001X\u0080\u0004¢\u0006\n\n\u0000\u001a\u0006\b\u008e\u0001\u0010\u008f\u0001R\u0015\u0010\u0090\u0001\u001a\u00030\u0091\u0001¢\u0006\n\n\u0000\u001a\u0006\b\u0092\u0001\u0010\u0093\u0001R\u0018\u0010\u0094\u0001\u001a\u00030\u0095\u0001X\u0080\u0004¢\u0006\n\n\u0000\u001a\u0006\b\u0096\u0001\u0010\u0097\u0001R#\u0010\u0099\u0001\u001a\u00030\u0098\u00012\u0007\u0010\u0014\u001a\u00030\u0098\u0001@BX\u0086\u000e¢\u0006\n\n\u0000\u001a\u0006\b\u009a\u0001\u0010\u009b\u0001R\"\u0010\u009c\u0001\u001a\u0005\u0018\u00010\u009d\u0001X\u0080\u000e¢\u0006\u0012\n\u0000\u001a\u0006\b\u009e\u0001\u0010\u009f\u0001\"\u0006\b \u0001\u0010¡\u0001R\"\u0010¢\u0001\u001a\u0005\u0018\u00010£\u0001X\u0086\u000e¢\u0006\u0012\n\u0000\u001a\u0006\b¤\u0001\u0010¥\u0001\"\u0006\b¦\u0001\u0010§\u0001R\u000f\u0010¨\u0001\u001a\u00020\u000eX\u0082\u000e¢\u0006\u0002\n\u0000R\u001d\u0010©\u0001\u001a\u00020\u000eX\u0086\u000e¢\u0006\u0010\n\u0000\u001a\u0005\bª\u0001\u0010#\"\u0005\b«\u0001\u0010%R\"\u0010¬\u0001\u001a\u0005\u0018\u00010\u00ad\u0001X\u0080\u000e¢\u0006\u0012\n\u0000\u001a\u0006\b®\u0001\u0010¯\u0001\"\u0006\b°\u0001\u0010±\u0001¨\u0006\u008c\u0002"}, d2 = {"Lcom/mobilefuse/videoplayer/VideoPlayer;", "Landroid/widget/FrameLayout;", "Lcom/mobilefuse/videoplayer/controller/FullscreenController;", "Lcom/mobilefuse/videoplayer/controller/MuteController;", POBNativeConstants.NATIVE_CONTEXT, "Landroid/content/Context;", "(Landroid/content/Context;)V", "attrs", "Landroid/util/AttributeSet;", "(Landroid/content/Context;Landroid/util/AttributeSet;)V", "defStyleAttr", "", "(Landroid/content/Context;Landroid/util/AttributeSet;I)V", "primary", "", "fullscreenController", "Lcom/mobilefuse/videoplayer/controller/FullscreenControllerImpl;", "muteController", "Lcom/mobilefuse/videoplayer/controller/MuteControllerImpl;", "(Landroid/content/Context;Landroid/util/AttributeSet;IZLcom/mobilefuse/videoplayer/controller/FullscreenControllerImpl;Lcom/mobilefuse/videoplayer/controller/MuteControllerImpl;)V", "<set-?>", "Lcom/mobilefuse/videoplayer/model/AdAutoplay;", "adAutoplay", "getAdAutoplay", "()Lcom/mobilefuse/videoplayer/model/AdAutoplay;", "setAdAutoplay$mobilefuse_video_player_release", "(Lcom/mobilefuse/videoplayer/model/AdAutoplay;)V", "admClickInfoProvider", "Lcom/mobilefuse/sdk/video/AdmClickInfoProvider;", "getAdmClickInfoProvider", "()Lcom/mobilefuse/sdk/video/AdmClickInfoProvider;", "setAdmClickInfoProvider", "(Lcom/mobilefuse/sdk/video/AdmClickInfoProvider;)V", "allowClickthroughWithoutTap", "getAllowClickthroughWithoutTap", "()Z", "setAllowClickthroughWithoutTap", "(Z)V", "blockSkipSeconds", "", "getBlockSkipSeconds", "()F", "setBlockSkipSeconds", "(F)V", "clickthroughBehaviour", "Lcom/mobilefuse/sdk/video/ClickthroughBehaviour;", "getClickthroughBehaviour", "()Lcom/mobilefuse/sdk/video/ClickthroughBehaviour;", "setClickthroughBehaviour", "(Lcom/mobilefuse/sdk/video/ClickthroughBehaviour;)V", "controller", "Lcom/mobilefuse/videoplayer/VideoPlayerController;", "getController$mobilefuse_video_player_release", "()Lcom/mobilefuse/videoplayer/VideoPlayerController;", "currentMediaFile", "Lcom/mobilefuse/videoplayer/model/VastMediaFile;", "currentMediaFileSizeDp", "Landroid/graphics/Point;", "getCurrentMediaFileSizeDp", "()Landroid/graphics/Point;", "currentPlaybackPositionMillis", "", "getCurrentPlaybackPositionMillis", "()J", "currentVideoSource", "Lcom/mobilefuse/videoplayer/model/VideoSource;", "Lcom/mobilefuse/videoplayer/endcard/EndCardPresenter;", "endCardPresenter", "getEndCardPresenter$mobilefuse_video_player_release", "()Lcom/mobilefuse/videoplayer/endcard/EndCardPresenter;", "endCardScheduler", "Lcom/mobilefuse/videoplayer/endcard/scheduler/EndCardScheduler;", "getEndCardScheduler", "()Lcom/mobilefuse/videoplayer/endcard/scheduler/EndCardScheduler;", "setEndCardScheduler", "(Lcom/mobilefuse/videoplayer/endcard/scheduler/EndCardScheduler;)V", "enterFullscreenOnVideoTap", "getEnterFullscreenOnVideoTap", "setEnterFullscreenOnVideoTap", "forceSkipSeconds", "getForceSkipSeconds", "setForceSkipSeconds", e.TEMPLATE_TYPE_FULLSCREEN, "getFullscreen", "fullscreenAllowed", "getFullscreenAllowed", "fullscreenChangedListener", "Lcom/mobilefuse/videoplayer/controller/FullscreenChangedListener;", "getFullscreenChangedListener", "()Lcom/mobilefuse/videoplayer/controller/FullscreenChangedListener;", "setFullscreenChangedListener", "(Lcom/mobilefuse/videoplayer/controller/FullscreenChangedListener;)V", "impressionReported", "initialized", "isDestroyed", "isDestroyed$mobilefuse_video_player_release", "isMuteAllowed", "layoutHeight", "layoutWidth", "loadListener", "Lcom/mobilefuse/videoplayer/VideoPlayer$LoadListener;", "mainContainer", "getMainContainer$mobilefuse_video_player_release", "()Landroid/widget/FrameLayout;", "mainContainerParams", "Landroid/view/ViewGroup$LayoutParams;", "getMainContainerParams$mobilefuse_video_player_release", "()Landroid/view/ViewGroup$LayoutParams;", "setMainContainerParams$mobilefuse_video_player_release", "(Landroid/view/ViewGroup$LayoutParams;)V", "value", "maxEndCardsToShow", "getMaxEndCardsToShow", "()I", "setMaxEndCardsToShow", "(I)V", "muteChangedListener", "Lcom/mobilefuse/sdk/MuteChangedListener;", "getMuteChangedListener", "()Lcom/mobilefuse/sdk/MuteChangedListener;", "setMuteChangedListener", "(Lcom/mobilefuse/sdk/MuteChangedListener;)V", "onVideoSkipButtonVisible", "Lkotlin/Function0;", "", "getOnVideoSkipButtonVisible", "()Lkotlin/jvm/functions/Function0;", "setOnVideoSkipButtonVisible", "(Lkotlin/jvm/functions/Function0;)V", "pausedVideoPosition", "playbackController", "Lcom/mobilefuse/videoplayer/controller/PlaybackController;", "playbackDurationMillis", "getPlaybackDurationMillis", "playbackListener", "Lcom/mobilefuse/videoplayer/VideoPlayer$PlaybackListener;", "getPlaybackListener$mobilefuse_video_player_release", "()Lcom/mobilefuse/videoplayer/VideoPlayer$PlaybackListener;", "setPlaybackListener$mobilefuse_video_player_release", "(Lcom/mobilefuse/videoplayer/VideoPlayer$PlaybackListener;)V", "player", "Lcom/mobilefuse/videoplayer/media/MobileFusePlayer;", "getPlayer$mobilefuse_video_player_release", "()Lcom/mobilefuse/videoplayer/media/MobileFusePlayer;", "playerCapabilities", "Lcom/mobilefuse/videoplayer/VideoPlayerCapabilities;", "getPlayerCapabilities", "()Lcom/mobilefuse/videoplayer/VideoPlayerCapabilities;", "playerHandler", "Landroid/os/Handler;", "getPlayerHandler$mobilefuse_video_player_release", "()Landroid/os/Handler;", "Lcom/mobilefuse/videoplayer/VideoPlayer$PlayerState;", "playerState", "getPlayerState", "()Lcom/mobilefuse/videoplayer/VideoPlayer$PlayerState;", "renderingActivity", "Landroid/app/Activity;", "getRenderingActivity$mobilefuse_video_player_release", "()Landroid/app/Activity;", "setRenderingActivity$mobilefuse_video_player_release", "(Landroid/app/Activity;)V", "uiAdm", "", "getUiAdm", "()Ljava/lang/String;", "setUiAdm", "(Ljava/lang/String;)V", "videoStarted", "videoStreamEnabled", "getVideoStreamEnabled", "setVideoStreamEnabled", "webView", "Landroid/webkit/WebView;", "getWebView$mobilefuse_video_player_release", "()Landroid/webkit/WebView;", "setWebView$mobilefuse_video_player_release", "(Landroid/webkit/WebView;)V", "addIcon", "icon", "Lcom/mobilefuse/videoplayer/model/VastIcon;", "addIcons", "addPlayerInstance", "calculateSkipOffset", "callJsBridgeCmd", "js", "callJsBridgeCmd$mobilefuse_video_player_release", "changePlayerState", "newPlayerState", "createAdmClickInfo", "Lcom/mobilefuse/sdk/video/AdmClickInfo;", "createWebView", "initializationListener", "destroy", "destroyEndCard", "destroyVideoPlayer", "enableExternalFullscreenControl", "bridge", "Lcom/mobilefuse/videoplayer/controller/ExternalFullscreenControlBridge;", "fillsEntireScreen", "getSizeInDp", "", "getSizeInPixels", "handleVastBridgeCall", "callUri", "Landroid/net/Uri;", "initializePlayer", "isMuted", "isPlayerVisible", "isPlayerVisible$mobilefuse_video_player_release", "isPlaying", "loadVast", "xml", "onActivityPause", "onActivityResume", "onAdCompleted", "onAttachedToWindow", "onDetachedFromWindow", "onEndCardError", "onLayout", "changed", TtmlNode.LEFT, "top", TtmlNode.RIGHT, "bottom", "onMediaFileSelected", "mediaFile", "onPrepared", "onVastDataLoaded", "success", com.vungle.ads.internal.presenter.e.ERROR, "Lcom/mobilefuse/videoplayer/model/VastError;", "onVideoBecameInvisible", "onVideoBecameVisible", "onVideoCompleted", "closeTrigger", "Lcom/mobilefuse/videoplayer/view/ViewCloseTrigger;", "onVideoError", "onVideoFileCached", "videoSource", "onVisibilityChanged", "changedView", "Landroid/view/View;", "visibility", "pause", "play", "activity", "removePlayerUi", "reportAdImpression", "resume", "sendTrackingEvent", "eventType", "Lcom/mobilefuse/videoplayer/model/VastTrackingEventType;", "setFullscreen", "setFullscreenAllowed", "setMuteAllowed", "setMuted", "muted", "setOmidBridge", "omidBridge", "Lcom/mobilefuse/sdk/omid/VastOmidBridge;", "showEndCard", "skipVideo", "startVideoTimer", "stopVideoTimer", "LoadListener", "PlaybackListener", "PlayerState", "mobilefuse-video-player_release"}, k = 1, mv = {1, 4, 3})
public final class VideoPlayer extends FrameLayout implements FullscreenController, MuteController {
@NotNull
private AdAutoplay adAutoplay;
private AdmClickInfoProvider admClickInfoProvider;
private boolean allowClickthroughWithoutTap;
private float blockSkipSeconds;
@NotNull
private ClickthroughBehaviour clickthroughBehaviour;
@NotNull
private final VideoPlayerController controller;
private VastMediaFile currentMediaFile;
private VideoSource currentVideoSource;
private EndCardPresenter endCardPresenter;
@NotNull
private EndCardScheduler endCardScheduler;
private float forceSkipSeconds;
private final FullscreenControllerImpl fullscreenController;
private boolean impressionReported;
private boolean initialized;
private int layoutHeight;
private int layoutWidth;
private LoadListener loadListener;
@NotNull
private final FrameLayout mainContainer;
@NotNull
private ViewGroup.LayoutParams mainContainerParams;
private int maxEndCardsToShow;
private final MuteControllerImpl muteController;
private Function0<Unit> onVideoSkipButtonVisible;
private long pausedVideoPosition;
private final PlaybackController playbackController;
private long playbackDurationMillis;
private PlaybackListener playbackListener;
@NotNull
private final MobileFusePlayer player;
@NotNull
private final VideoPlayerCapabilities playerCapabilities;
@NotNull
private final Handler playerHandler;
@NotNull
private PlayerState playerState;
private Activity renderingActivity;
private String uiAdm;
private boolean videoStarted;
private boolean videoStreamEnabled;
private WebView webView;
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\b\n\u0000\n\u0002\u0018\u0002\n\u0000\u0010\u0000\u001a\u0004\u0018\u00010\u0001H\n¢\u0006\u0002\b\u0002"}, d2 = {"<anonymous>", "Lcom/mobilefuse/sdk/video/AdmClickInfo;", "invoke"}, k = 3, mv = {1, 4, 3})
public static final class AnonymousClass1 extends r implements Function0<AdmClickInfo> {
public AnonymousClass1() {
super(0);
}
public final AdmClickInfo m150invoke() {
return VideoPlayer.this.createAdmClickInfo();
}
}
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\bf\u0018\u00002\u00020\u0001J\u0012\u0010\u0002\u001a\u00020\u00032\b\u0010\u0004\u001a\u0004\u0018\u00010\u0005H&J\b\u0010\u0006\u001a\u00020\u0003H&¨\u0006\u0007"}, d2 = {"Lcom/mobilefuse/videoplayer/VideoPlayer$LoadListener;", "", "onError", "", com.vungle.ads.internal.presenter.e.ERROR, "Lcom/mobilefuse/videoplayer/model/VastError;", "onVideoLoaded", "mobilefuse-video-player_release"}, k = 1, mv = {1, 4, 3})
public interface LoadListener {
void onError(VastError error);
void onVideoLoaded();
}
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\u001c\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0002\b\u000b\b\u0016\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\b\u0010\u0003\u001a\u00020\u0004H\u0016J\b\u0010\u0005\u001a\u00020\u0004H\u0016J\u0010\u0010\u0006\u001a\u00020\u00042\u0006\u0010\u0007\u001a\u00020\bH\u0016J\b\u0010\t\u001a\u00020\u0004H\u0016J\b\u0010\n\u001a\u00020\u0004H\u0016J\b\u0010\u000b\u001a\u00020\u0004H\u0016J\b\u0010\f\u001a\u00020\u0004H\u0016J\b\u0010\r\u001a\u00020\u0004H\u0016J\b\u0010\u000e\u001a\u00020\u0004H\u0016J\b\u0010\u000f\u001a\u00020\u0004H\u0016J\b\u0010\u0010\u001a\u00020\u0004H\u0016J\b\u0010\u0011\u001a\u00020\u0004H\u0016J\b\u0010\u0012\u001a\u00020\u0004H\u0016¨\u0006\u0013"}, d2 = {"Lcom/mobilefuse/videoplayer/VideoPlayer$PlaybackListener;", "", "()V", "onAdCompleted", "", "onAdImpression", "onClicked", "url", "", "onEndCardError", "onVideoCompleted", "onVideoError", "onVideoFirstQuartile", "onVideoMidpoint", "onVideoPaused", "onVideoPlaying", "onVideoSkipped", "onVideoStarted", "onVideoThirdQuartile", "mobilefuse-video-player_release"}, k = 1, mv = {1, 4, 3})
public static class PlaybackListener {
public void onAdCompleted() {
}
public void onAdImpression() {
}
public void onClicked(@NotNull String url) {
Intrinsics.checkNotNullParameter(url, "url");
}
public void onEndCardError() {
}
public void onVideoCompleted() {
}
public void onVideoError() {
}
public void onVideoFirstQuartile() {
}
public void onVideoMidpoint() {
}
public void onVideoPaused() {
}
public void onVideoPlaying() {
}
public void onVideoSkipped() {
}
public void onVideoStarted() {
}
public void onVideoThirdQuartile() {
}
}
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0010\n\u0002\b\u000b\b\u0086\u0001\u0018\u00002\b\u0012\u0004\u0012\u00020\u00000\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002j\u0002\b\u0003j\u0002\b\u0004j\u0002\b\u0005j\u0002\b\u0006j\u0002\b\u0007j\u0002\b\bj\u0002\b\tj\u0002\b\nj\u0002\b\u000b¨\u0006\f"}, d2 = {"Lcom/mobilefuse/videoplayer/VideoPlayer$PlayerState;", "", "(Ljava/lang/String;I)V", "IDLE", "VIDEO_LOADING", "VIDEO_CACHED", "INITIALIZING", "PLAYING", "PAUSED", "END_CARD", "ERROR", "DESTROYED", "mobilefuse-video-player_release"}, k = 1, mv = {1, 4, 3})
public enum PlayerState {
IDLE,
VIDEO_LOADING,
VIDEO_CACHED,
INITIALIZING,
PLAYING,
PAUSED,
END_CARD,
ERROR,
DESTROYED
}
@Metadata(bv = {1, 0, 3}, k = 3, mv = {1, 4, 3})
public final class WhenMappings {
public static final int[] $EnumSwitchMapping$0;
public static final int[] $EnumSwitchMapping$1;
static {
int[] iArr = new int[MediaPlayerState.values().length];
$EnumSwitchMapping$0 = iArr;
iArr[MediaPlayerState.PLAYING.ordinal()] = 1;
iArr[MediaPlayerState.PAUSED.ordinal()] = 2;
iArr[MediaPlayerState.ERROR.ordinal()] = 3;
int[] iArr2 = new int[PlayerState.values().length];
$EnumSwitchMapping$1 = iArr2;
iArr2[PlayerState.ERROR.ordinal()] = 1;
iArr2[PlayerState.PLAYING.ordinal()] = 2;
iArr2[PlayerState.PAUSED.ordinal()] = 3;
}
}
public VideoPlayer(Context context, AttributeSet attributeSet, int i, boolean z, FullscreenControllerImpl fullscreenControllerImpl, MuteControllerImpl muteControllerImpl, int i2, DefaultConstructorMarker defaultConstructorMarker) {
this(context, attributeSet, i, z, (i2 & 16) != 0 ? new FullscreenControllerImpl() : fullscreenControllerImpl, (i2 & 32) != 0 ? new MuteControllerImpl() : muteControllerImpl);
}
private final void addIcon(VastIcon icon) {
try {
VastBaseResource resource = icon.getResource();
if (resource != null && resource.getContent() != null) {
String str = "IconResourceType." + icon.getResource().getResourceType().name();
JSONObject jSONObject = new JSONObject();
Integer width = icon.getWidth();
if (width != null) {
jSONObject.put("width", width.intValue());
}
Integer height = icon.getHeight();
if (height != null) {
jSONObject.put("height", height.intValue());
}
if (icon.getOffset() != null) {
jSONObject.put("offset", r3.getValueInFloatSeconds());
}
if (icon.getDuration() != null) {
jSONObject.put(Icon.DURATION, r3.getValueInFloatSeconds());
}
jSONObject.put("clickPayload", icon.getUid());
jSONObject.put("viewPayload", icon.getUid());
jSONObject.put("resource", icon.getResource().getContent());
callJsBridgeCmd$mobilefuse_video_player_release("vast.bridge.addIcon(" + str + ", " + jSONObject + ");");
}
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
private final void addIcons() {
Iterator<VastIcon> it = this.controller.getIcons().iterator();
while (it.hasNext()) {
addIcon(it.next());
}
}
private final void addPlayerInstance() {
try {
this.mainContainer.setBackgroundColor((int) 4278190080L);
addView(this.mainContainer, this.mainContainerParams);
this.mainContainer.addView(this.player, new ViewGroup.LayoutParams(-1, -1));
this.player.setPlayerStateChangeListener(new VideoPlayer$addPlayerInstance$1(this));
this.player.setPlaybackCompletionListener(new VideoPlayer$addPlayerInstance$2(this));
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
private final float calculateSkipOffset() {
VastTime adSkipOffset = this.controller.getAdSkipOffset();
return AdSkipOffsetResolver.resolveAdSkipOffset(adSkipOffset != null ? Float.valueOf(adSkipOffset.getValueInFloatSeconds()) : null, this.forceSkipSeconds, this.blockSkipSeconds);
}
public final void changePlayerState(PlayerState newPlayerState) {
if (isDestroyed$mobilefuse_video_player_release() || this.playerState == newPlayerState) {
return;
}
this.playerState = newPlayerState;
DebuggingKt.logDebug$default(this, "changePlayerState [newState: " + newPlayerState + ']', null, 2, null);
try {
int i = WhenMappings.$EnumSwitchMapping$1[this.playerState.ordinal()];
if (i == 1) {
this.controller.sendErrorEvent(VastError.GENERAL_PLAYBACK_FAILURE);
onVideoError();
return;
}
if (i != 2) {
if (i != 3) {
return;
}
PlaybackListener playbackListener = this.playbackListener;
if (playbackListener != null) {
playbackListener.onVideoPaused();
}
this.controller.sendTrackingEvent(VastTrackingEventType.pause);
return;
}
if (this.videoStarted) {
this.controller.sendTrackingEvent(VastTrackingEventType.resume);
} else {
this.videoStarted = true;
PlaybackListener playbackListener2 = this.playbackListener;
if (playbackListener2 != null) {
playbackListener2.onVideoStarted();
}
this.controller.sendTrackingEvent(VastTrackingEventType.start);
reportAdImpression();
}
PlaybackListener playbackListener3 = this.playbackListener;
if (playbackListener3 != null) {
playbackListener3.onVideoPlaying();
}
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public final AdmClickInfo createAdmClickInfo() {
return this.controller.getAdmClickInfo();
}
private final void createWebView(final Function0<Unit> initializationListener) {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
final WebView webView = new WebView(getContext());
WebSettings settings = webView.getSettings();
Intrinsics.checkNotNullExpressionValue(settings, EventGroupType.SETTINGS_GROUP);
settings.setJavaScriptEnabled(true);
WebSettings settings2 = webView.getSettings();
Intrinsics.checkNotNullExpressionValue(settings2, EventGroupType.SETTINGS_GROUP);
settings2.setAllowContentAccess(true);
WebSettings settings3 = webView.getSettings();
Intrinsics.checkNotNullExpressionValue(settings3, EventGroupType.SETTINGS_GROUP);
settings3.setAllowFileAccess(true);
WebSettings settings4 = webView.getSettings();
Intrinsics.checkNotNullExpressionValue(settings4, EventGroupType.SETTINGS_GROUP);
settings4.setAllowFileAccessFromFileURLs(true);
WebSettings settings5 = webView.getSettings();
Intrinsics.checkNotNullExpressionValue(settings5, EventGroupType.SETTINGS_GROUP);
settings5.setAllowUniversalAccessFromFileURLs(true);
webView.setBackgroundColor(Color.argb(0, 255, 255, 255));
webView.setLayerType(2, null);
String str = this.uiAdm;
if (str != null) {
webView.loadDataWithBaseURL("file:///android_asset/mobilefuse/", str, "text/html", C.UTF8_NAME, null);
} else {
MobileFuseAssetManager mobileFuseAssetManager = MobileFuseAssetManager.INSTANCE;
Context context = webView.getContext();
Intrinsics.checkNotNullExpressionValue(context, POBNativeConstants.NATIVE_CONTEXT);
FlowKt.flow(new VideoPlayer$$special$$inlined$runOn$1(mobileFuseAssetManager.getSpecificAssetContentFlow("vast_controls.html", context), Schedulers.MAIN)).collect(new FlowCollector() {
@Override
public final void emit(@NotNull Either<? extends Throwable, ? extends T> either) {
Intrinsics.checkNotNullParameter(either, "result");
if (either instanceof SuccessResult) {
String str2 = (String) ((SuccessResult) either).getValue();
if (str2 != null) {
webView.loadDataWithBaseURL("https://sdk-webview.mobilefuse.com/vast/", str2, "text/html", C.UTF8_NAME, null);
} else {
DebuggingKt.logError$default(webView, "Can't render VideoPlayer, getSpecificAssetContentFlow returned null", null, 2, null);
}
}
}
@Override
public void emitError(@NotNull Throwable th) {
Intrinsics.checkNotNullParameter(th, com.vungle.ads.internal.presenter.e.ERROR);
FlowCollector.DefaultImpls.emitError(this, th);
}
@Override
public void emitSuccess(T t) {
FlowCollector.DefaultImpls.emitSuccess(this, t);
}
});
}
webView.setWebViewClient(new WebViewClient() {
@Override
public void onLoadResource(WebView view, @NotNull String url) {
Intrinsics.checkNotNullParameter(url, "url");
try {
HttpRequestTracker.logHttpRequest(url);
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
super.onLoadResource(view, url);
}
@Override
public void onPageFinished(@NotNull WebView view, @NotNull String url) {
Intrinsics.checkNotNullParameter(view, "view");
Intrinsics.checkNotNullParameter(url, "url");
try {
initializationListener.invoke();
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
super.onPageFinished(view, url);
}
@Override
public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) {
Log.w("Video Player", "WebView Render Process has gone.");
if (view != this.getWebView()) {
return true;
}
ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.LogAndIgnore;
try {
WebView webView2 = this.getWebView();
if (webView2 != null) {
ViewParent parent = webView2.getParent();
if (!(parent instanceof ViewGroup)) {
parent = null;
}
ViewGroup viewGroup = (ViewGroup) parent;
if (viewGroup != null) {
viewGroup.removeView(webView2);
}
}
this.getController().sendErrorEvent(VastError.GENERAL_PLAYBACK_FAILURE);
this.onVideoError();
} catch (Throwable th) {
int i = VideoPlayer$createWebView$1$3$onRenderProcessGone$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
return true;
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if (request == null) {
return null;
}
try {
return WebViewUtils.shouldInterceptRequest(webView.getContext(), request.getUrl());
} catch (Throwable th) {
StabilityHelper.logException(this, th);
return super.shouldInterceptRequest(view, request);
}
}
@Override
public boolean shouldOverrideUrlLoading(@NotNull WebView view, @NotNull String url) {
Intrinsics.checkNotNullParameter(view, "view");
Intrinsics.checkNotNullParameter(url, "url");
try {
Uri parse = Uri.parse(url);
Intrinsics.checkNotNullExpressionValue(parse, "parsed");
if (!Intrinsics.a(parse.getScheme(), "vast")) {
return super.shouldOverrideUrlLoading(view, url);
}
this.handleVastBridgeCall(parse);
return true;
} catch (Throwable th) {
StabilityHelper.logException(this, th);
return true;
}
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
try {
return WebViewUtils.shouldInterceptRequest(webView.getContext(), Uri.parse(url));
} catch (Throwable th) {
StabilityHelper.logException(this, th);
return super.shouldInterceptRequest(view, url);
}
}
});
Unit unit = Unit.a;
this.webView = webView;
this.mainContainer.addView(webView, 1);
}
private final void destroyEndCard() {
try {
EndCardPresenter endCardPresenter = this.endCardPresenter;
if (endCardPresenter != null) {
endCardPresenter.destroy();
}
this.endCardPresenter = null;
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
private final void destroyVideoPlayer() {
VideoSource videoSource;
try {
AdmClickInfoProvider admClickInfoProvider = this.admClickInfoProvider;
if (admClickInfoProvider != null) {
admClickInfoProvider.destroyProducer(null);
}
this.admClickInfoProvider = null;
setMuteChangedListener(null);
removePlayerUi();
this.player.destroy();
ViewParent parent = this.player.getParent();
if (parent != null) {
((ViewGroup) parent).removeView(this.player);
}
VideoSource videoSource2 = this.currentVideoSource;
if (videoSource2 != null && !videoSource2.getVideoStreamEnabled() && (videoSource = this.currentVideoSource) != null) {
SchedulersKt.safelyRunOnBgThread$default(null, new VideoPlayer$destroyVideoPlayer$$inlined$let$lambda$1(videoSource, this), 1, null);
}
this.currentVideoSource = null;
this.currentMediaFile = null;
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public final void handleVastBridgeCall(Uri callUri) {
String url;
PlaybackListener playbackListener;
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
String host = callUri.getHost();
DebuggingKt.logDebug$default(this, d0.C("Call: ", host), null, 2, null);
if (host != null) {
boolean z = true;
switch (host.hashCode()) {
case -1416528753:
if (host.equals("iconClick")) {
String queryParameter = callUri.getQueryParameter(EventKeys.PAYLOAD);
if (queryParameter != null) {
VideoPlayerController videoPlayerController = this.controller;
Intrinsics.checkNotNullExpressionValue(queryParameter, "it");
videoPlayerController.onIconClick(queryParameter);
break;
}
}
break;
case -737868098:
if (host.equals("iconView")) {
String queryParameter2 = callUri.getQueryParameter(EventKeys.PAYLOAD);
if (queryParameter2 != null) {
VideoPlayerController videoPlayerController2 = this.controller;
Intrinsics.checkNotNullExpressionValue(queryParameter2, "it");
videoPlayerController2.onIconView(queryParameter2);
break;
}
}
break;
case -356709944:
if (host.equals("closeButtonVisible")) {
this.playerCapabilities.changeCapability(VastPlayerCapability.SKIP, true);
Function0<Unit> function0 = this.onVideoSkipButtonVisible;
if (function0 != null) {
break;
}
}
break;
case 94750088:
if (host.equals("click")) {
if (!getEnterFullscreenOnVideoTap() || !getFullscreenAllowed() || getFullscreen()) {
String queryParameter3 = callUri.getQueryParameter("source");
if (queryParameter3 != null) {
ClickthroughBehaviour clickthroughBehaviour = this.clickthroughBehaviour;
Intrinsics.checkNotNullExpressionValue(queryParameter3, "it");
z = ClickthroughBehaviourKt.canAcceptSource(clickthroughBehaviour, queryParameter3);
}
if (z) {
this.controller.onVideoClickThrough();
VastClickThrough clickThrough = this.controller.getClickThrough();
if (clickThrough != null && (url = clickThrough.getUrl()) != null && (playbackListener = this.playbackListener) != null) {
playbackListener.onClicked(url);
break;
}
}
} else {
setFullscreen(true);
break;
}
}
break;
case 94756344:
if (host.equals("close")) {
skipVideo();
break;
}
break;
case 586449341:
if (host.equals("setFullscreen")) {
setFullscreen(callUri.getBooleanQueryParameter(e.TEMPLATE_TYPE_FULLSCREEN, false));
break;
}
break;
case 1984790939:
if (host.equals("setMute")) {
this.muteController.setMuteFromWebView(callUri.getBooleanQueryParameter("muted", false));
this.controller.onMuteChanged();
MuteChangedListener muteChangedListener = getMuteChangedListener();
if (muteChangedListener != null) {
muteChangedListener.onMutedChanged(this.muteController.getMuted());
break;
}
}
break;
}
callJsBridgeCmd$mobilefuse_video_player_release("vast.bridge.nativeCallComplete();");
}
a.B("Unimplemented command called: ", host, VastTree.VAST);
callJsBridgeCmd$mobilefuse_video_player_release("vast.bridge.nativeCallComplete();");
}
private final void initializePlayer(Function0<Unit> initializationListener) {
try {
if (this.initialized) {
return;
}
this.initialized = true;
createWebView(initializationListener);
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public final void onAdCompleted() {
ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.LogAndIgnore;
try {
this.fullscreenController.executeFullscreenExit$mobilefuse_video_player_release();
PlaybackListener playbackListener = this.playbackListener;
if (playbackListener != null) {
playbackListener.onAdCompleted();
}
} catch (Throwable th) {
int i = VideoPlayer$onAdCompleted$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
}
public final void onEndCardError() {
DebuggingKt.logDebug$default(this, "onEndCardError", null, 2, null);
PlaybackListener playbackListener = this.playbackListener;
if (playbackListener != null) {
playbackListener.onEndCardError();
}
}
public final void onMediaFileSelected(VastMediaFile mediaFile) {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
try {
if (mediaFile == null) {
LoadListener loadListener = this.loadListener;
if (loadListener != null) {
loadListener.onError(VastError.MEDIAFILE_NOT_FOUND);
return;
}
return;
}
this.currentMediaFile = mediaFile;
String url = mediaFile.getUrl();
if (url == null) {
LoadListener loadListener2 = this.loadListener;
if (loadListener2 != null) {
loadListener2.onError(VastError.MEDIAFILE_NOT_FOUND);
return;
}
return;
}
changePlayerState(PlayerState.VIDEO_LOADING);
if (!this.videoStreamEnabled) {
VideoDownloader videoDownloader = VideoDownloader.INSTANCE;
Context context = getContext();
Intrinsics.checkNotNullExpressionValue(context, POBNativeConstants.NATIVE_CONTEXT);
videoDownloader.cache(context, url, new VideoDownloader.Listener() {
@Override
public void onComplete(@NotNull String requestedUrl, @NotNull VideoSource videoSource) {
Intrinsics.checkNotNullParameter(requestedUrl, "requestedUrl");
Intrinsics.checkNotNullParameter(videoSource, "videoSource");
try {
VideoPlayer.this.onVideoFileCached(videoSource);
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
@Override
public void onError(@NotNull VastError error) {
VideoPlayer.LoadListener loadListener3;
Intrinsics.checkNotNullParameter(error, com.vungle.ads.internal.presenter.e.ERROR);
if (VideoPlayer.this.isDestroyed$mobilefuse_video_player_release()) {
return;
}
VideoPlayer.this.getController().sendErrorEvent(error);
loadListener3 = VideoPlayer.this.loadListener;
if (loadListener3 != null) {
loadListener3.onError(error);
}
}
});
return;
}
this.currentVideoSource = new VideoSource(mediaFile.getUrl(), mediaFile.getUrl(), true);
changePlayerState(PlayerState.VIDEO_CACHED);
LoadListener loadListener3 = this.loadListener;
if (loadListener3 != null) {
loadListener3.onVideoLoaded();
}
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public final void onPrepared() {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
try {
DebuggingKt.logDebug$default(this, "vast player ready", null, 2, null);
if (getEnterFullscreenOnVideoTap()) {
callJsBridgeCmd$mobilefuse_video_player_release("vast.bridge.setEnterFullscreenOnVideoTap(true);");
}
VastTime adDuration = this.controller.getAdDuration();
if (adDuration != null) {
callJsBridgeCmd$mobilefuse_video_player_release("vast.bridge.setVideoDuration(" + adDuration.getValueInSeconds() + ");");
}
float calculateSkipOffset = calculateSkipOffset();
if (calculateSkipOffset != -1.0f) {
callJsBridgeCmd$mobilefuse_video_player_release("vast.bridge.setSkipTime(" + calculateSkipOffset + ");");
}
callJsBridgeCmd$mobilefuse_video_player_release("vast.bridge.setCtaText(\"" + StringEncodingAndFormattingKt.encodeUriComponent("Learn More") + "\");");
if (getIsMuteAllowed()) {
this.muteController.enableMuteButton$mobilefuse_video_player_release();
}
if (getFullscreenAllowed()) {
this.fullscreenController.enableFullscreenButton$mobilefuse_video_player_release();
}
addIcons();
DebuggingKt.logDebug$default(this, "vast player playing", null, 2, null);
this.playbackDurationMillis = this.player.getDuration();
this.player.play();
startVideoTimer();
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public final void onVastDataLoaded(boolean success, VastError error) {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
try {
if (!success) {
DebuggingKt.logError$default(this, "VAST xml tag can't be loaded or parsed", null, 2, null);
LoadListener loadListener = this.loadListener;
if (loadListener != null) {
loadListener.onError(error);
return;
}
return;
}
NetworkUtils networkUtils = NetworkUtils.INSTANCE;
Context context = getContext();
Intrinsics.checkNotNullExpressionValue(context, POBNativeConstants.NATIVE_CONTEXT);
if (networkUtils.getNetworkType(context) == null) {
DebuggingKt.logError$default(this, "Can't proceed with media file loading due to no active network connection.", null, 2, null);
LoadListener loadListener2 = this.loadListener;
if (loadListener2 != null) {
loadListener2.onError(VastError.MEDIAFILE_TIMEOUT);
return;
}
return;
}
VideoCache videoCache = VideoCache.INSTANCE;
Context context2 = getContext();
Intrinsics.checkNotNullExpressionValue(context2, POBNativeConstants.NATIVE_CONTEXT);
videoCache.initialize(context2);
Context context3 = getContext();
Intrinsics.checkNotNullExpressionValue(context3, POBNativeConstants.NATIVE_CONTEXT);
this.controller.selectBestMediaFile(MediaUtilsKt.getScreenSizeAsPixels(context3), new VideoPlayer$onVastDataLoaded$2(this));
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public static void onVastDataLoaded$default(VideoPlayer videoPlayer, boolean z, VastError vastError, int i, Object obj) {
if ((i & 2) != 0) {
vastError = null;
}
videoPlayer.onVastDataLoaded(z, vastError);
}
public final void onVideoCompleted(ViewCloseTrigger closeTrigger) {
ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.LogAndIgnore;
try {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
DebuggingKt.logDebug$default(this, "onVideoCompleted", null, 2, null);
AdmClickInfoProvider admClickInfoProvider = this.admClickInfoProvider;
if (admClickInfoProvider != null) {
admClickInfoProvider.destroyProducer(this.controller.getAdmClickInfo());
}
this.admClickInfoProvider = null;
stopVideoTimer();
if (closeTrigger == ViewCloseTrigger.AUTO_CLOSE) {
sendTrackingEvent(VastTrackingEventType.complete);
PlaybackListener playbackListener = this.playbackListener;
if (playbackListener != null) {
playbackListener.onVideoCompleted();
}
}
showEndCard(closeTrigger);
} catch (Throwable th) {
int i = VideoPlayer$onVideoCompleted$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
}
public final void onVideoError() {
DebuggingKt.logDebug$default(this, "onVideoError", null, 2, null);
PlaybackListener playbackListener = this.playbackListener;
if (playbackListener != null) {
playbackListener.onVideoError();
}
}
public final void onVideoFileCached(VideoSource videoSource) {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
try {
this.currentVideoSource = videoSource;
changePlayerState(PlayerState.VIDEO_CACHED);
LoadListener loadListener = this.loadListener;
if (loadListener != null) {
loadListener.onVideoLoaded();
}
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
private final void removePlayerUi() {
try {
stopVideoTimer();
WebView webView = this.webView;
if (webView != null) {
if (webView.getParent() != null) {
ViewParent parent = webView.getParent();
if (parent == null) {
throw new NullPointerException("null cannot be cast to non-null type android.view.ViewGroup");
}
((ViewGroup) parent).removeView(this.webView);
}
webView.stopLoading();
webView.destroy();
this.webView = null;
}
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
private final void reportAdImpression() {
if (this.impressionReported) {
return;
}
this.impressionReported = true;
this.controller.sendImpressionEvent$mobilefuse_video_player_release(new VideoPlayer$reportAdImpression$1(this));
}
private final void sendTrackingEvent(VastTrackingEventType eventType) {
this.controller.sendTrackingEvent(eventType);
}
private final void showEndCard(final ViewCloseTrigger closeTrigger) {
Either errorResult;
ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.LogAndIgnore;
try {
} catch (Throwable th) {
if (VideoPlayer$showEndCard$$inlined$gracefullyHandleException$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$1[exceptionHandlingStrategy.ordinal()] == 1) {
StabilityHelper.logException("[Automatically caught]", th);
}
errorResult = new ErrorResult(th);
}
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
changePlayerState(PlayerState.END_CARD);
destroyVideoPlayer();
DebuggingKt.logDebug$default(this, "Show EndCard", null, 2, null);
Context context = getContext();
Intrinsics.checkNotNullExpressionValue(context, POBNativeConstants.NATIVE_CONTEXT);
List<VastCompanion> selectCompanionAds = this.controller.selectCompanionAds(MediaUtilsKt.getScreenSizeAsPixels(context));
if (selectCompanionAds.isEmpty()) {
onAdCompleted();
return;
}
Context context2 = getContext();
Intrinsics.checkNotNullExpressionValue(context2, POBNativeConstants.NATIVE_CONTEXT);
EndCardPresenter endCardPresenter = new EndCardPresenter(this.mainContainer, context2, this.renderingActivity, this.endCardScheduler, selectCompanionAds, getFullscreen(), this.allowClickthroughWithoutTap, new EndCardListener() {
@Override
public void onClicked(@NotNull VastCompanion companion, VastClickThrough clickThrough) {
String url;
VideoPlayer.PlaybackListener playbackListener;
Intrinsics.checkNotNullParameter(companion, "companion");
ExceptionHandlingStrategy exceptionHandlingStrategy2 = ExceptionHandlingStrategy.LogAndIgnore;
try {
VideoPlayer.this.getController().sendCompanionAdClickTrackingEvent(companion);
if (clickThrough != null) {
Context context3 = VideoPlayer.this.getContext();
Intrinsics.checkNotNullExpressionValue(context3, POBNativeConstants.NATIVE_CONTEXT);
VastDataModelExtensionsKt.openUrl(clickThrough, context3, VideoPlayer.this.getController().getEventTracker(), null);
}
if (clickThrough == null || (url = clickThrough.getUrl()) == null || (playbackListener = VideoPlayer.this.getPlaybackListener()) == null) {
return;
}
playbackListener.onClicked(url);
} catch (Throwable th2) {
int i = VideoPlayer$showEndCard$1$endCardPresenter$1$onClicked$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy2.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th2);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
}
@Override
public void onClosed(@NotNull VastCompanion companion, @NotNull ViewCloseTrigger closeTrigger2) {
Intrinsics.checkNotNullParameter(companion, "companion");
Intrinsics.checkNotNullParameter(closeTrigger2, "closeTrigger");
ExceptionHandlingStrategy exceptionHandlingStrategy2 = ExceptionHandlingStrategy.LogAndIgnore;
}
@Override
public void onCompleted() {
ExceptionHandlingStrategy exceptionHandlingStrategy2 = ExceptionHandlingStrategy.LogAndIgnore;
try {
VideoPlayer.this.onAdCompleted();
} catch (Throwable th2) {
int i = VideoPlayer$showEndCard$1$endCardPresenter$1$onCompleted$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy2.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th2);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
}
@Override
public void onError(@NotNull VastError error) {
Intrinsics.checkNotNullParameter(error, com.vungle.ads.internal.presenter.e.ERROR);
ExceptionHandlingStrategy exceptionHandlingStrategy2 = ExceptionHandlingStrategy.LogAndIgnore;
try {
VideoPlayer.this.getController().sendErrorEvent(error);
VideoPlayer.this.onEndCardError();
} catch (Throwable th2) {
int i = VideoPlayer$showEndCard$1$endCardPresenter$1$onError$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy2.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th2);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
}
@Override
public void onTrackingEvent(@NotNull VastCompanion companion, @NotNull VastTrackingEventType eventType) {
Intrinsics.checkNotNullParameter(companion, "companion");
Intrinsics.checkNotNullParameter(eventType, "eventType");
VideoPlayer.this.getController().sendCompanionAdTrackingEvent(companion, eventType);
}
});
this.endCardPresenter = endCardPresenter;
endCardPresenter.showNextEndCard(closeTrigger, new VideoPlayer$showEndCard$$inlined$gracefullyHandleException$lambda$2(this, closeTrigger));
errorResult = new SuccessResult(Unit.a);
if (errorResult instanceof ErrorResult) {
onEndCardError();
} else {
if (!(errorResult instanceof SuccessResult)) {
throw new NoWhenBranchMatchedException();
}
((SuccessResult) errorResult).getValue();
}
}
private final void skipVideo() {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
try {
this.controller.onSkipped();
pause();
PlaybackListener playbackListener = this.playbackListener;
if (playbackListener != null) {
playbackListener.onVideoSkipped();
}
onVideoCompleted(ViewCloseTrigger.USER);
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
private final void startVideoTimer() {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
this.playbackController.startUpdating(new VideoPlayer$startVideoTimer$1(this));
}
private final void stopVideoTimer() {
this.playbackController.stopUpdating();
}
public final void callJsBridgeCmd$mobilefuse_video_player_release(@NotNull final String js) {
Intrinsics.checkNotNullParameter(js, "js");
if (isDestroyed$mobilefuse_video_player_release() || this.webView == null) {
return;
}
this.playerHandler.post(new Runnable() {
@Override
public final void run() {
try {
WebView webView = VideoPlayer.this.getWebView();
if (webView != null) {
webView.evaluateJavascript(js, null);
}
} catch (Throwable th) {
StabilityHelper.logException(VideoPlayer.this, th);
}
}
});
}
public final void destroy() {
try {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
changePlayerState(PlayerState.DESTROYED);
destroyVideoPlayer();
destroyEndCard();
setFullscreenChangedListener(null);
this.controller.destroy();
this.renderingActivity = null;
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
@Override
public void enableExternalFullscreenControl(@NotNull ExternalFullscreenControlBridge bridge) {
Intrinsics.checkNotNullParameter(bridge, "bridge");
this.fullscreenController.enableExternalFullscreenControl(bridge);
}
public final boolean fillsEntireScreen() {
View findViewById;
if (isDestroyed$mobilefuse_video_player_release()) {
return false;
}
try {
} catch (Throwable th) {
th.printStackTrace();
}
if (getFullscreenAllowed()) {
return getFullscreen();
}
View rootView = getRootView();
return rootView != null && (findViewById = rootView.findViewById(android.R.id.content)) != null && findViewById.getWidth() == this.mainContainer.getWidth() && findViewById.getHeight() == this.mainContainer.getHeight();
}
@NotNull
public final AdAutoplay getAdAutoplay() {
return this.adAutoplay;
}
public final AdmClickInfoProvider getAdmClickInfoProvider() {
return this.admClickInfoProvider;
}
public final boolean getAllowClickthroughWithoutTap() {
return this.allowClickthroughWithoutTap;
}
public final float getBlockSkipSeconds() {
return this.blockSkipSeconds;
}
@NotNull
public final ClickthroughBehaviour getClickthroughBehaviour() {
return this.clickthroughBehaviour;
}
@NotNull
public final VideoPlayerController getController() {
return this.controller;
}
public final Point getCurrentMediaFileSizeDp() {
Integer width;
VastMediaFile vastMediaFile = this.currentMediaFile;
if (vastMediaFile == null || (width = vastMediaFile.getWidth()) == null) {
return null;
}
int intValue = width.intValue();
Integer height = vastMediaFile.getHeight();
if (height != null) {
return new Point(intValue, height.intValue());
}
return null;
}
public final long getCurrentPlaybackPositionMillis() {
try {
PlayerState playerState = this.playerState;
if (playerState == PlayerState.PLAYING || playerState == PlayerState.PAUSED) {
return this.player.getCurrentPosition();
}
return -1L;
} catch (Throwable th) {
StabilityHelper.logException(this, th);
return -1L;
}
}
public final EndCardPresenter getEndCardPresenter() {
return this.endCardPresenter;
}
@NotNull
public final EndCardScheduler getEndCardScheduler() {
return this.endCardScheduler;
}
@Override
public boolean getEnterFullscreenOnVideoTap() {
return this.fullscreenController.getEnterFullscreenOnVideoTap();
}
public final float getForceSkipSeconds() {
return this.forceSkipSeconds;
}
@Override
public boolean getFullscreen() {
return this.fullscreenController.getFullscreen();
}
@Override
public boolean getFullscreenAllowed() {
return this.fullscreenController.getFullscreenAllowed();
}
@Override
public FullscreenChangedListener getFullscreenChangedListener() {
return this.fullscreenController.getFullscreenChangedListener();
}
@NotNull
public final FrameLayout getMainContainer() {
return this.mainContainer;
}
@NotNull
public final ViewGroup.LayoutParams getMainContainerParams() {
return this.mainContainerParams;
}
public final int getMaxEndCardsToShow() {
return this.maxEndCardsToShow;
}
@Override
public MuteChangedListener getMuteChangedListener() {
return this.muteController.getMuteChangedListener();
}
public final Function0<Unit> getOnVideoSkipButtonVisible() {
return this.onVideoSkipButtonVisible;
}
public final long getPlaybackDurationMillis() {
return this.playbackDurationMillis;
}
public final PlaybackListener getPlaybackListener() {
return this.playbackListener;
}
@NotNull
public final MobileFusePlayer getPlayer() {
return this.player;
}
@NotNull
public final VideoPlayerCapabilities getPlayerCapabilities() {
return this.playerCapabilities;
}
@NotNull
public final Handler getPlayerHandler() {
return this.playerHandler;
}
@NotNull
public final PlayerState getPlayerState() {
return this.playerState;
}
public final Activity getRenderingActivity() {
return this.renderingActivity;
}
public final int[] getSizeInDp() {
int[] sizeInPixels = getSizeInPixels();
if (sizeInPixels == null) {
return null;
}
Context context = getContext();
Intrinsics.checkNotNullExpressionValue(context, POBNativeConstants.NATIVE_CONTEXT);
MediaUtilsKt.convertFromPixelsToDp(context, sizeInPixels);
return sizeInPixels;
}
public final int[] getSizeInPixels() {
if (this.player.isDestroyed()) {
return null;
}
return new int[]{this.player.getWidth(), this.player.getHeight()};
}
public final String getUiAdm() {
return this.uiAdm;
}
public final boolean getVideoStreamEnabled() {
return this.videoStreamEnabled;
}
public final WebView getWebView() {
return this.webView;
}
public final boolean isDestroyed$mobilefuse_video_player_release() {
return this.playerState == PlayerState.DESTROYED;
}
@Override
public boolean getIsMuteAllowed() {
return this.muteController.getIsMuteAllowed();
}
@Override
public boolean isMuted() {
return this.muteController.isMuted();
}
public final boolean isPlayerVisible$mobilefuse_video_player_release() {
ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.LogAndIgnore;
try {
return this.mainContainer.isShown();
} catch (Throwable th) {
if (VideoPlayer$isPlayerVisible$$inlined$gracefullyHandleException$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$1[exceptionHandlingStrategy.ordinal()] == 1) {
StabilityHelper.logException("[Automatically caught]", th);
}
return false;
}
}
public final boolean isPlaying() {
return this.playerState == PlayerState.PLAYING;
}
public final void loadVast(@NotNull final String xml, @NotNull final LoadListener loadListener) {
Intrinsics.checkNotNullParameter(xml, "xml");
Intrinsics.checkNotNullParameter(loadListener, "loadListener");
ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.LogAndIgnore;
try {
this.loadListener = new LoadListener() {
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\n\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\u0010\u0000\u001a\u00020\u0001H\n¢\u0006\u0002\b\u0002¨\u0006\u0003"}, d2 = {"<anonymous>", "", "invoke", "com/mobilefuse/videoplayer/VideoPlayer$loadVast$1$1$onVideoLoaded$1"}, k = 3, mv = {1, 4, 3})
public static final class AnonymousClass1 extends r implements Function0<Unit> {
public AnonymousClass1() {
super(0);
}
public Object invoke() {
m147invoke();
return Unit.a;
}
public final void m147invoke() {
loadListener.onVideoLoaded();
}
}
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\n\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\u0010\u0000\u001a\u00020\u0001H\n¢\u0006\u0002\b\u0002¨\u0006\u0003"}, d2 = {"<anonymous>", "", "invoke", "com/mobilefuse/videoplayer/VideoPlayer$loadVast$1$1$onError$1"}, k = 3, mv = {1, 4, 3})
public static final class AnonymousClass2 extends r implements Function0<Unit> {
final VastError $error;
public AnonymousClass2(VastError vastError) {
super(0);
this.$error = vastError;
}
public Object invoke() {
m148invoke();
return Unit.a;
}
public final void m148invoke() {
loadListener.onError(this.$error);
}
}
@Override
public void onError(VastError error) {
SchedulersKt.safelyRunOnMainThread$default(null, new AnonymousClass2(error), 1, null);
}
@Override
public void onVideoLoaded() {
SchedulersKt.safelyRunOnMainThread$default(null, new AnonymousClass1(), 1, null);
}
};
SchedulersKt.safelyRunOnBgThread$default(null, new VideoPlayer$loadVast$$inlined$handleExceptions$lambda$2(this, loadListener, xml), 1, null);
} catch (Throwable th) {
int i = VideoPlayer$loadVast$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
}
public final void onActivityPause() {
pause();
}
public final void onActivityResume() {
resume();
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
try {
resume();
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
@Override
public void onDetachedFromWindow() {
try {
pause();
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
super.onDetachedFromWindow();
}
@Override
public void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
if (!isDestroyed$mobilefuse_video_player_release() && changed) {
try {
this.layoutWidth = right - left;
this.layoutHeight = bottom - top;
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
}
@Override
public void onVideoBecameInvisible() {
this.muteController.onVideoBecameInvisible();
}
@Override
public void onVideoBecameVisible() {
this.muteController.onVideoBecameVisible();
}
@Override
public void onVisibilityChanged(@NotNull View changedView, int visibility) {
Window window;
Intrinsics.checkNotNullParameter(changedView, "changedView");
ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.LogAndIgnore;
try {
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
if (isPlayerVisible$mobilefuse_video_player_release()) {
this.player.onBecameVisible();
this.muteController.onVideoBecameVisible();
} else {
Activity activity = this.renderingActivity;
if (!Intrinsics.a(changedView, (activity == null || (window = activity.getWindow()) == null) ? null : window.getDecorView())) {
this.muteController.onVideoBecameInvisible();
this.player.onBecameInvisible();
}
}
super.onVisibilityChanged(changedView, visibility);
} catch (Throwable th) {
int i = VideoPlayer$onVisibilityChanged$$inlined$handleExceptions$1$wm$TryKt$WhenMappings.$EnumSwitchMapping$0[exceptionHandlingStrategy.ordinal()];
if (i == 1) {
StabilityHelper.logException("[Automatically caught]", th);
} else if (i != 2) {
throw new NoWhenBranchMatchedException();
}
}
}
public final void pause() {
try {
if (this.player.getCanPause()) {
this.player.pause();
this.pausedVideoPosition = this.player.getCurrentPosition();
stopVideoTimer();
}
} catch (Exception e) {
StabilityHelper.logException(this, e);
}
}
public final void play(Activity activity, @NotNull PlaybackListener playbackListener) {
Intrinsics.checkNotNullParameter(playbackListener, "playbackListener");
if (isDestroyed$mobilefuse_video_player_release()) {
return;
}
try {
this.renderingActivity = activity;
VideoSource videoSource = this.currentVideoSource;
if (videoSource == null) {
return;
}
if (this.playerState != PlayerState.VIDEO_CACHED) {
DebuggingKt.logError$default(this, "Can't play video because is not cached.", null, 2, null);
return;
}
this.playbackListener = playbackListener;
this.controller.initOmid$mobilefuse_video_player_release();
this.controller.callOmidLoadedEvent$mobilefuse_video_player_release();
this.adAutoplay = this.muteController.getMuted() ? AdAutoplay.MUTED_AUTOPLAY : AdAutoplay.UNMUTED_AUTOPLAY;
changePlayerState(PlayerState.INITIALIZING);
initializePlayer(new VideoPlayer$play$1(this, videoSource));
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public final void resume() {
try {
if (this.player.getCanPlay() && Utils.isAttachedToWindow(this)) {
this.player.play();
startVideoTimer();
}
} catch (Throwable th) {
StabilityHelper.logException(this, th);
}
}
public final void setAdAutoplay$mobilefuse_video_player_release(@NotNull AdAutoplay adAutoplay) {
Intrinsics.checkNotNullParameter(adAutoplay, "<set-?>");
this.adAutoplay = adAutoplay;
}
public final void setAdmClickInfoProvider(AdmClickInfoProvider admClickInfoProvider) {
this.admClickInfoProvider = admClickInfoProvider;
}
public final void setAllowClickthroughWithoutTap(boolean z) {
this.allowClickthroughWithoutTap = z;
}
public final void setBlockSkipSeconds(float f) {
this.blockSkipSeconds = f;
}
public final void setClickthroughBehaviour(@NotNull ClickthroughBehaviour clickthroughBehaviour) {
Intrinsics.checkNotNullParameter(clickthroughBehaviour, "<set-?>");
this.clickthroughBehaviour = clickthroughBehaviour;
}
public final void setEndCardScheduler(@NotNull EndCardScheduler endCardScheduler) {
Intrinsics.checkNotNullParameter(endCardScheduler, "<set-?>");
this.endCardScheduler = endCardScheduler;
}
@Override
public void setEnterFullscreenOnVideoTap(boolean z) {
this.fullscreenController.setEnterFullscreenOnVideoTap(z);
}
public final void setForceSkipSeconds(float f) {
this.forceSkipSeconds = f;
}
@Override
public void setFullscreen(boolean fullscreen) {
this.fullscreenController.setFullscreen(fullscreen);
}
@Override
public void setFullscreenAllowed() {
this.fullscreenController.setFullscreenAllowed();
}
@Override
public void setFullscreenChangedListener(FullscreenChangedListener fullscreenChangedListener) {
this.fullscreenController.setFullscreenChangedListener(fullscreenChangedListener);
}
public final void setMainContainerParams$mobilefuse_video_player_release(@NotNull ViewGroup.LayoutParams layoutParams) {
Intrinsics.checkNotNullParameter(layoutParams, "<set-?>");
this.mainContainerParams = layoutParams;
}
public final void setMaxEndCardsToShow(int i) {
if (this.maxEndCardsToShow < 0) {
return;
}
this.maxEndCardsToShow = i;
}
@Override
public void setMuteAllowed() {
this.muteController.setMuteAllowed();
}
@Override
public void setMuteChangedListener(MuteChangedListener muteChangedListener) {
this.muteController.setMuteChangedListener(muteChangedListener);
}
@Override
public void setMuted(boolean muted) {
this.muteController.setMuted(muted);
}
public final void setOmidBridge(VastOmidBridge omidBridge) {
this.controller.setOmidBridge(omidBridge);
}
public final void setOnVideoSkipButtonVisible(Function0<Unit> function0) {
this.onVideoSkipButtonVisible = function0;
}
public final void setPlaybackListener$mobilefuse_video_player_release(PlaybackListener playbackListener) {
this.playbackListener = playbackListener;
}
public final void setRenderingActivity$mobilefuse_video_player_release(Activity activity) {
this.renderingActivity = activity;
}
public final void setUiAdm(String str) {
this.uiAdm = str;
}
public final void setVideoStreamEnabled(boolean z) {
this.videoStreamEnabled = z;
}
public final void setWebView$mobilefuse_video_player_release(WebView webView) {
this.webView = webView;
}
private VideoPlayer(Context context, AttributeSet attributeSet, int i, boolean z, FullscreenControllerImpl fullscreenControllerImpl, MuteControllerImpl muteControllerImpl) {
super(context, attributeSet, i);
this.fullscreenController = fullscreenControllerImpl;
this.muteController = muteControllerImpl;
this.playerHandler = new Handler(Looper.getMainLooper());
this.layoutWidth = -1;
this.layoutHeight = -1;
this.player = new MobileFusePlayer(context);
PlaybackController playbackController = new PlaybackController();
this.playbackController = playbackController;
this.mainContainer = new FrameLayout(context);
this.mainContainerParams = new ViewGroup.LayoutParams(-1, -1);
this.playbackDurationMillis = -1L;
this.controller = new VideoPlayerController(context, this);
this.playerState = PlayerState.IDLE;
this.playerCapabilities = new VideoPlayerCapabilities();
this.adAutoplay = AdAutoplay.UNMUTED_AUTOPLAY;
this.forceSkipSeconds = -1.0f;
this.blockSkipSeconds = -1.0f;
this.maxEndCardsToShow = 1;
this.endCardScheduler = new BaseEndCardScheduler();
this.clickthroughBehaviour = ClickthroughBehaviour.CTA_AND_VIDEO;
this.admClickInfoProvider = new AdmClickInfoProvider();
playbackController.initialize(this);
muteControllerImpl.initialize(this);
fullscreenControllerImpl.initialize(this);
addPlayerInstance();
AdmClickInfoProvider admClickInfoProvider = this.admClickInfoProvider;
if (admClickInfoProvider != null) {
admClickInfoProvider.registerProducer(new AnonymousClass1());
}
}
public VideoPlayer(@NotNull Context context) {
this(context, null, 0, true, null, null, 48, null);
Intrinsics.checkNotNullParameter(context, POBNativeConstants.NATIVE_CONTEXT);
}
public VideoPlayer(@NotNull Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0, true, null, null, 48, null);
Intrinsics.checkNotNullParameter(context, POBNativeConstants.NATIVE_CONTEXT);
}
public VideoPlayer(@NotNull Context context, AttributeSet attributeSet, int i) {
this(context, attributeSet, i, true, null, null, 48, null);
Intrinsics.checkNotNullParameter(context, POBNativeConstants.NATIVE_CONTEXT);
}
}