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;
}
}