GoooBet v1.0版本的 MD5 值为:ff9748f16167bfd7735b669c0a9931c5

以下内容为反编译后的 NativeVideoViewController.java 源代码,内容仅作参考


package com.mopub.nativeads;

import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.SurfaceTexture;
import android.media.AudioManager;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.VideoView;
import com.mopub.common.Constants;
import com.mopub.common.Preconditions;
import com.mopub.common.UrlAction;
import com.mopub.common.UrlHandler;
import com.mopub.common.logging.MoPubLog;
import com.mopub.mobileads.BaseVideoViewController;
import com.mopub.mobileads.VastVideoConfig;
import com.mopub.nativeads.NativeFullScreenVideoView;
import com.mopub.nativeads.NativeVideoController;

public class NativeVideoViewController extends BaseVideoViewController implements AudioManager.OnAudioFocusChangeListener, TextureView.SurfaceTextureListener, NativeVideoController.Listener {
    private Bitmap mCachedVideoFrame;
    private boolean mEnded;
    private boolean mError;
    private final NativeFullScreenVideoView mFullScreenVideoView;
    private int mLatestVideoControllerState;
    private final NativeVideoController mNativeVideoController;
    private VastVideoConfig mVastVideoConfig;
    private VideoState mVideoState;

    public enum VideoState {
        NONE,
        LOADING,
        BUFFERING,
        PAUSED,
        PLAYING,
        ENDED,
        FAILED_LOAD
    }

    @Override
    public VideoView getVideoView() {
        return null;
    }

    @Override
    public void onDestroy() {
    }

    @Override
    public void onPause() {
    }

    @Override
    public void onSaveInstanceState(Bundle bundle) {
    }

    @Override
    public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i2) {
    }

    @Override
    public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
    }

    public NativeVideoViewController(Context context, Bundle bundle, Bundle bundle2, BaseVideoViewController.BaseVideoViewControllerListener baseVideoViewControllerListener) {
        this(context, bundle, bundle2, baseVideoViewControllerListener, new NativeFullScreenVideoView(context, context.getResources().getConfiguration().orientation, ((VastVideoConfig) bundle.get(Constants.NATIVE_VAST_VIDEO_CONFIG)).getCustomCtaText()));
    }

    NativeVideoViewController(Context context, Bundle bundle, Bundle bundle2, BaseVideoViewController.BaseVideoViewControllerListener baseVideoViewControllerListener, NativeFullScreenVideoView nativeFullScreenVideoView) {
        super(context, null, baseVideoViewControllerListener);
        Preconditions.checkNotNull(context);
        Preconditions.checkNotNull(bundle);
        Preconditions.checkNotNull(baseVideoViewControllerListener);
        Preconditions.checkNotNull(nativeFullScreenVideoView);
        this.mVideoState = VideoState.NONE;
        this.mVastVideoConfig = (VastVideoConfig) bundle.get(Constants.NATIVE_VAST_VIDEO_CONFIG);
        this.mFullScreenVideoView = nativeFullScreenVideoView;
        this.mNativeVideoController = NativeVideoController.getForId(((Long) bundle.get(Constants.NATIVE_VIDEO_ID)).longValue());
        Preconditions.checkNotNull(this.mVastVideoConfig);
        Preconditions.checkNotNull(this.mNativeVideoController);
    }

    @Override
    public void onCreate() {
        this.mFullScreenVideoView.setSurfaceTextureListener(this);
        this.mFullScreenVideoView.setMode(NativeFullScreenVideoView.Mode.LOADING);
        this.mFullScreenVideoView.setPlayControlClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (NativeVideoViewController.this.mEnded) {
                    NativeVideoViewController.this.mEnded = false;
                    NativeVideoViewController.this.mFullScreenVideoView.resetProgress();
                    NativeVideoViewController.this.mNativeVideoController.seekTo(0L);
                }
                NativeVideoViewController.this.applyState(VideoState.PLAYING);
            }
        });
        this.mFullScreenVideoView.setCloseControlListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                NativeVideoViewController.this.applyState(VideoState.PAUSED, true);
                NativeVideoViewController.this.getBaseVideoViewControllerListener().onFinish();
            }
        });
        this.mFullScreenVideoView.setCtaClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                NativeVideoViewController.this.mNativeVideoController.setPlayWhenReady(false);
                NativeVideoViewController nativeVideoViewController = NativeVideoViewController.this;
                nativeVideoViewController.mCachedVideoFrame = nativeVideoViewController.mFullScreenVideoView.getTextureView().getBitmap();
                NativeVideoViewController.this.mNativeVideoController.handleCtaClick((Activity) NativeVideoViewController.this.getContext());
            }
        });
        this.mFullScreenVideoView.setPrivacyInformationClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                NativeVideoViewController.this.mNativeVideoController.setPlayWhenReady(false);
                NativeVideoViewController nativeVideoViewController = NativeVideoViewController.this;
                nativeVideoViewController.mCachedVideoFrame = nativeVideoViewController.mFullScreenVideoView.getTextureView().getBitmap();
                String privacyInformationIconClickthroughUrl = NativeVideoViewController.this.mVastVideoConfig.getPrivacyInformationIconClickthroughUrl();
                if (TextUtils.isEmpty(privacyInformationIconClickthroughUrl)) {
                    privacyInformationIconClickthroughUrl = "https://www.mopub.com/optout/";
                }
                new UrlHandler.Builder().withSupportedUrlActions(UrlAction.OPEN_IN_APP_BROWSER, new UrlAction[0]).build().handleUrl(NativeVideoViewController.this.getContext(), privacyInformationIconClickthroughUrl);
            }
        });
        this.mFullScreenVideoView.setPrivacyInformationIconImageUrl(this.mVastVideoConfig.getPrivacyInformationIconImageUrl());
        this.mFullScreenVideoView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
        getBaseVideoViewControllerListener().onSetContentView(this.mFullScreenVideoView);
        this.mNativeVideoController.setProgressListener(new NativeVideoController.NativeVideoProgressRunnable.ProgressListener() {
            @Override
            public void updateProgress(int i) {
                NativeVideoViewController.this.mFullScreenVideoView.updateProgress(i);
            }
        });
    }

    @Override
    public void onResume() {
        Bitmap bitmap = this.mCachedVideoFrame;
        if (bitmap != null) {
            this.mFullScreenVideoView.setCachedVideoFrame(bitmap);
        }
        this.mNativeVideoController.prepare(this);
        this.mNativeVideoController.setListener(this);
        this.mNativeVideoController.setOnAudioFocusChangeListener(this);
    }

    @Override
    public void onConfigurationChanged(Configuration configuration) {
        this.mFullScreenVideoView.setOrientation(configuration.orientation);
    }

    @Override
    public void onBackPressed() {
        applyState(VideoState.PAUSED, true);
    }

    @Override
    public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i2) {
        this.mNativeVideoController.setTextureView(this.mFullScreenVideoView.getTextureView());
        if (!this.mEnded) {
            NativeVideoController nativeVideoController = this.mNativeVideoController;
            nativeVideoController.seekTo(nativeVideoController.getCurrentPosition());
        }
        this.mNativeVideoController.setPlayWhenReady(!this.mEnded);
        if (this.mNativeVideoController.getDuration() - this.mNativeVideoController.getCurrentPosition() < 750) {
            this.mEnded = true;
            maybeChangeState();
        }
    }

    @Override
    public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
        this.mNativeVideoController.release(this);
        applyState(VideoState.PAUSED);
        return true;
    }

    @Override
    public void onStateChanged(boolean z, int i) {
        this.mLatestVideoControllerState = i;
        maybeChangeState();
    }

    @Override
    public void onError(Exception exc) {
        MoPubLog.log(MoPubLog.SdkLogEvent.ERROR_WITH_THROWABLE, "Error playing back video.", exc);
        this.mError = true;
        maybeChangeState();
    }

    @Override
    public void onAudioFocusChange(int i) {
        if (i == -1 || i == -2) {
            applyState(VideoState.PAUSED);
            return;
        }
        if (i == -3) {
            this.mNativeVideoController.setAudioVolume(0.3f);
        } else if (i == 1) {
            this.mNativeVideoController.setAudioVolume(1.0f);
            maybeChangeState();
        }
    }

    private void maybeChangeState() {
        VideoState videoState = this.mVideoState;
        if (this.mError) {
            videoState = VideoState.FAILED_LOAD;
        } else if (this.mEnded) {
            videoState = VideoState.ENDED;
        } else {
            int i = this.mLatestVideoControllerState;
            if (i == 1) {
                videoState = VideoState.LOADING;
            } else if (i == 2) {
                videoState = VideoState.BUFFERING;
            } else if (i == 3) {
                videoState = VideoState.PLAYING;
            } else if (i == 4 || i == 5) {
                videoState = VideoState.ENDED;
            }
        }
        applyState(videoState);
    }

    void applyState(VideoState videoState) {
        applyState(videoState, false);
    }

    void applyState(VideoState videoState, boolean z) {
        Preconditions.checkNotNull(videoState);
        if (this.mVideoState == videoState) {
            return;
        }
        switch (AnonymousClass6.$SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState[videoState.ordinal()]) {
            case 1:
                this.mNativeVideoController.setPlayWhenReady(false);
                this.mNativeVideoController.setAudioEnabled(false);
                this.mNativeVideoController.setAppAudioEnabled(false);
                this.mFullScreenVideoView.setMode(NativeFullScreenVideoView.Mode.LOADING);
                this.mVastVideoConfig.handleError(getContext(), null, 0);
                break;
            case 2:
            case 3:
                this.mNativeVideoController.setPlayWhenReady(true);
                this.mFullScreenVideoView.setMode(NativeFullScreenVideoView.Mode.LOADING);
                break;
            case 4:
                this.mNativeVideoController.setPlayWhenReady(true);
                this.mNativeVideoController.setAudioEnabled(true);
                this.mNativeVideoController.setAppAudioEnabled(true);
                this.mFullScreenVideoView.setMode(NativeFullScreenVideoView.Mode.PLAYING);
                break;
            case 5:
                if (!z) {
                    this.mNativeVideoController.setAppAudioEnabled(false);
                }
                this.mNativeVideoController.setPlayWhenReady(false);
                this.mFullScreenVideoView.setMode(NativeFullScreenVideoView.Mode.PAUSED);
                break;
            case 6:
                this.mEnded = true;
                this.mNativeVideoController.setAppAudioEnabled(false);
                this.mFullScreenVideoView.updateProgress(1000);
                this.mFullScreenVideoView.setMode(NativeFullScreenVideoView.Mode.FINISHED);
                this.mVastVideoConfig.handleComplete(getContext(), 0);
                break;
        }
        this.mVideoState = videoState;
    }

    public static class AnonymousClass6 {
        static final int[] $SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState;

        static {
            int[] iArr = new int[VideoState.values().length];
            $SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState = iArr;
            try {
                iArr[VideoState.FAILED_LOAD.ordinal()] = 1;
            } catch (NoSuchFieldError unused) {
            }
            try {
                $SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState[VideoState.LOADING.ordinal()] = 2;
            } catch (NoSuchFieldError unused2) {
            }
            try {
                $SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState[VideoState.BUFFERING.ordinal()] = 3;
            } catch (NoSuchFieldError unused3) {
            }
            try {
                $SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState[VideoState.PLAYING.ordinal()] = 4;
            } catch (NoSuchFieldError unused4) {
            }
            try {
                $SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState[VideoState.PAUSED.ordinal()] = 5;
            } catch (NoSuchFieldError unused5) {
            }
            try {
                $SwitchMap$com$mopub$nativeads$NativeVideoViewController$VideoState[VideoState.ENDED.ordinal()] = 6;
            } catch (NoSuchFieldError unused6) {
            }
        }
    }

    @Deprecated
    NativeFullScreenVideoView getNativeFullScreenVideoView() {
        return this.mFullScreenVideoView;
    }

    @Deprecated
    VideoState getVideoState() {
        return this.mVideoState;
    }
}