jimu-decompiled/sources/com/twitter/sdk/android/tweetui/internal/VideoView.java
2025-05-13 19:24:51 +02:00

629 lines
24 KiB
Java

package com.twitter.sdk.android.tweetui.internal;
import android.content.Context;
import android.media.MediaPlayer;
import android.net.Uri;
import android.util.AttributeSet;
import android.util.Log;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import com.twitter.sdk.android.tweetui.internal.VideoControlView;
/* loaded from: classes.dex */
public class VideoView extends SurfaceView implements VideoControlView.MediaPlayerControl {
private GestureDetector A;
SurfaceHolder.Callback B;
private String a;
private Uri b;
private int c;
private int d;
private SurfaceHolder e;
private MediaPlayer f;
private int g;
private int h;
private int i;
private int j;
private int k;
private VideoControlView l;
private MediaPlayer.OnCompletionListener m;
private MediaPlayer.OnPreparedListener n;
private int o;
private MediaPlayer.OnErrorListener p;
private MediaPlayer.OnInfoListener q;
private int r;
private boolean s;
MediaPlayer.OnVideoSizeChangedListener t;
MediaPlayer.OnPreparedListener u;
private MediaPlayer.OnCompletionListener v;
private MediaPlayer.OnInfoListener x;
private MediaPlayer.OnErrorListener y;
private MediaPlayer.OnBufferingUpdateListener z;
public VideoView(Context context) {
super(context);
this.a = "VideoView";
this.c = 0;
this.d = 0;
this.e = null;
this.f = null;
this.t = new MediaPlayer.OnVideoSizeChangedListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.1
@Override // android.media.MediaPlayer.OnVideoSizeChangedListener
public void onVideoSizeChanged(MediaPlayer mediaPlayer, int i, int i2) {
VideoView.this.h = mediaPlayer.getVideoWidth();
VideoView.this.i = mediaPlayer.getVideoHeight();
if (VideoView.this.h == 0 || VideoView.this.i == 0) {
return;
}
VideoView.this.getHolder().setFixedSize(VideoView.this.h, VideoView.this.i);
VideoView.this.requestLayout();
}
};
this.u = new MediaPlayer.OnPreparedListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.2
@Override // android.media.MediaPlayer.OnPreparedListener
public void onPrepared(MediaPlayer mediaPlayer) {
VideoView.this.c = 2;
if (VideoView.this.n != null) {
VideoView.this.n.onPrepared(VideoView.this.f);
}
if (VideoView.this.l != null) {
VideoView.this.l.setEnabled(true);
}
VideoView.this.h = mediaPlayer.getVideoWidth();
VideoView.this.i = mediaPlayer.getVideoHeight();
int i = VideoView.this.r;
if (i != 0) {
VideoView.this.seekTo(i);
}
if (VideoView.this.h == 0 || VideoView.this.i == 0) {
if (VideoView.this.d == 3) {
VideoView.this.start();
return;
}
return;
}
VideoView.this.getHolder().setFixedSize(VideoView.this.h, VideoView.this.i);
if (VideoView.this.j == VideoView.this.h && VideoView.this.k == VideoView.this.i) {
if (VideoView.this.d == 3) {
VideoView.this.start();
if (VideoView.this.l != null) {
VideoView.this.l.i();
return;
}
return;
}
if (VideoView.this.isPlaying()) {
return;
}
if ((i != 0 || VideoView.this.getCurrentPosition() > 0) && VideoView.this.l != null) {
VideoView.this.l.i();
}
}
}
};
this.v = new MediaPlayer.OnCompletionListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.3
@Override // android.media.MediaPlayer.OnCompletionListener
public void onCompletion(MediaPlayer mediaPlayer) {
VideoView.this.c = 5;
VideoView.this.d = 5;
if (VideoView.this.m != null) {
VideoView.this.m.onCompletion(VideoView.this.f);
}
}
};
this.x = new MediaPlayer.OnInfoListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.4
@Override // android.media.MediaPlayer.OnInfoListener
public boolean onInfo(MediaPlayer mediaPlayer, int i, int i2) {
if (VideoView.this.q == null) {
return true;
}
VideoView.this.q.onInfo(mediaPlayer, i, i2);
return true;
}
};
this.y = new MediaPlayer.OnErrorListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.5
@Override // android.media.MediaPlayer.OnErrorListener
public boolean onError(MediaPlayer mediaPlayer, int i, int i2) {
Log.d(VideoView.this.a, "Error: " + i + "," + i2);
VideoView.this.c = -1;
VideoView.this.d = -1;
if (VideoView.this.l != null) {
VideoView.this.l.c();
}
if (VideoView.this.p == null || VideoView.this.p.onError(VideoView.this.f, i, i2)) {
}
return true;
}
};
this.z = new MediaPlayer.OnBufferingUpdateListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.6
@Override // android.media.MediaPlayer.OnBufferingUpdateListener
public void onBufferingUpdate(MediaPlayer mediaPlayer, int i) {
VideoView.this.o = i;
}
};
this.A = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.7
@Override // android.view.GestureDetector.SimpleOnGestureListener, android.view.GestureDetector.OnGestureListener
public boolean onSingleTapUp(MotionEvent motionEvent) {
if (!VideoView.this.d() || VideoView.this.l == null) {
return false;
}
VideoView.this.f();
return false;
}
});
this.B = new SurfaceHolder.Callback() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.8
@Override // android.view.SurfaceHolder.Callback
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i2, int i3) {
VideoView.this.j = i2;
VideoView.this.k = i3;
boolean z = VideoView.this.d == 3;
boolean z2 = VideoView.this.h == i2 && VideoView.this.i == i3;
if (VideoView.this.f != null && z && z2) {
if (VideoView.this.r != 0) {
VideoView videoView = VideoView.this;
videoView.seekTo(videoView.r);
}
VideoView.this.start();
if (VideoView.this.l != null) {
VideoView.this.l.i();
}
}
}
@Override // android.view.SurfaceHolder.Callback
public void surfaceCreated(SurfaceHolder surfaceHolder) {
VideoView.this.e = surfaceHolder;
VideoView.this.e();
}
@Override // android.view.SurfaceHolder.Callback
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
VideoView.this.e = null;
if (VideoView.this.l != null) {
VideoView.this.l.c();
}
VideoView.this.a(true);
}
};
c();
}
@Override // com.twitter.sdk.android.tweetui.internal.VideoControlView.MediaPlayerControl
public int getBufferPercentage() {
if (this.f != null) {
return this.o;
}
return 0;
}
@Override // com.twitter.sdk.android.tweetui.internal.VideoControlView.MediaPlayerControl
public int getCurrentPosition() {
if (d()) {
return this.f.getCurrentPosition();
}
return 0;
}
@Override // com.twitter.sdk.android.tweetui.internal.VideoControlView.MediaPlayerControl
public int getDuration() {
if (d()) {
return this.f.getDuration();
}
return -1;
}
@Override // com.twitter.sdk.android.tweetui.internal.VideoControlView.MediaPlayerControl
public boolean isPlaying() {
return d() && this.f.isPlaying();
}
@Override // android.view.View, android.view.KeyEvent.Callback
public boolean onKeyDown(int i, KeyEvent keyEvent) {
boolean z = (i == 4 || i == 24 || i == 25 || i == 82 || i == 5 || i == 6) ? false : true;
if (d() && z && this.l != null) {
if (i == 79 || i == 85) {
if (this.f.isPlaying()) {
pause();
this.l.i();
} else {
start();
this.l.c();
}
return true;
}
if (i == 126) {
if (!this.f.isPlaying()) {
start();
this.l.c();
}
return true;
}
if (i == 86 || i == 127) {
if (this.f.isPlaying()) {
pause();
this.l.i();
}
return true;
}
f();
}
return super.onKeyDown(i, keyEvent);
}
@Override // android.view.SurfaceView, android.view.View
protected void onMeasure(int i, int i2) {
int i3;
int defaultSize = SurfaceView.getDefaultSize(this.h, i);
int defaultSize2 = SurfaceView.getDefaultSize(this.i, i2);
if (this.h > 0 && this.i > 0) {
int mode = View.MeasureSpec.getMode(i);
i3 = View.MeasureSpec.getSize(i);
int mode2 = View.MeasureSpec.getMode(i2);
int size = View.MeasureSpec.getSize(i2);
if (mode == 1073741824 && mode2 == 1073741824) {
int i4 = this.h;
int i5 = i4 * size;
int i6 = this.i;
if (i5 < i3 * i6) {
defaultSize = (i4 * size) / i6;
defaultSize2 = size;
} else {
if (i4 * size > i3 * i6) {
defaultSize2 = (i6 * i3) / i4;
}
defaultSize2 = size;
}
} else if (mode == 1073741824) {
int i7 = (this.i * i3) / this.h;
if (mode2 != Integer.MIN_VALUE || i7 <= size) {
defaultSize2 = i7;
}
defaultSize2 = size;
} else if (mode2 == 1073741824) {
int i8 = (this.h * size) / this.i;
if (mode != Integer.MIN_VALUE || i8 <= i3) {
i3 = i8;
}
defaultSize2 = size;
} else {
int i9 = this.h;
int i10 = this.i;
if (mode2 != Integer.MIN_VALUE || i10 <= size) {
defaultSize2 = i10;
} else {
i9 = (i9 * size) / i10;
defaultSize2 = size;
}
if (mode != Integer.MIN_VALUE || i9 <= i3) {
i3 = i9;
} else {
defaultSize2 = (this.i * i3) / this.h;
}
}
setMeasuredDimension(i3, defaultSize2);
}
i3 = defaultSize;
setMeasuredDimension(i3, defaultSize2);
}
@Override // android.view.View
public boolean onTouchEvent(MotionEvent motionEvent) {
return this.A.onTouchEvent(motionEvent) || super.onTouchEvent(motionEvent);
}
@Override // com.twitter.sdk.android.tweetui.internal.VideoControlView.MediaPlayerControl
public void pause() {
if (d() && this.f.isPlaying()) {
this.f.pause();
this.c = 4;
}
this.d = 4;
}
@Override // com.twitter.sdk.android.tweetui.internal.VideoControlView.MediaPlayerControl
public void seekTo(int i) {
if (!d()) {
this.r = i;
} else {
this.f.seekTo(i);
this.r = 0;
}
}
public void setMediaController(VideoControlView videoControlView) {
VideoControlView videoControlView2 = this.l;
if (videoControlView2 != null) {
videoControlView2.c();
}
this.l = videoControlView;
b();
}
public void setOnCompletionListener(MediaPlayer.OnCompletionListener onCompletionListener) {
this.m = onCompletionListener;
}
public void setOnErrorListener(MediaPlayer.OnErrorListener onErrorListener) {
this.p = onErrorListener;
}
public void setOnInfoListener(MediaPlayer.OnInfoListener onInfoListener) {
this.q = onInfoListener;
}
public void setOnPreparedListener(MediaPlayer.OnPreparedListener onPreparedListener) {
this.n = onPreparedListener;
}
@Override // com.twitter.sdk.android.tweetui.internal.VideoControlView.MediaPlayerControl
public void start() {
if (d()) {
this.f.start();
this.c = 3;
}
this.d = 3;
}
private void b() {
VideoControlView videoControlView;
if (this.f == null || (videoControlView = this.l) == null) {
return;
}
videoControlView.setMediaPlayer(this);
this.l.setEnabled(d());
}
private void c() {
this.h = 0;
this.i = 0;
getHolder().addCallback(this.B);
getHolder().setType(3);
setFocusable(true);
setFocusableInTouchMode(true);
setClickable(true);
requestFocus();
this.c = 0;
this.d = 0;
}
/* JADX INFO: Access modifiers changed from: private */
public boolean d() {
int i;
return (this.f == null || (i = this.c) == -1 || i == 0 || i == 1) ? false : true;
}
/* JADX INFO: Access modifiers changed from: private */
public void e() {
if (this.b == null || this.e == null) {
return;
}
a(false);
try {
this.f = new MediaPlayer();
if (this.g != 0) {
this.f.setAudioSessionId(this.g);
} else {
this.g = this.f.getAudioSessionId();
}
this.f.setOnPreparedListener(this.u);
this.f.setOnVideoSizeChangedListener(this.t);
this.f.setOnCompletionListener(this.v);
this.f.setOnErrorListener(this.y);
this.f.setOnInfoListener(this.x);
this.f.setOnBufferingUpdateListener(this.z);
this.o = 0;
this.f.setLooping(this.s);
this.f.setDataSource(getContext(), this.b);
this.f.setDisplay(this.e);
this.f.setAudioStreamType(3);
this.f.setScreenOnWhilePlaying(true);
this.f.prepareAsync();
this.c = 1;
b();
} catch (Exception e) {
Log.w(this.a, "Unable to open content: " + this.b, e);
this.c = -1;
this.d = -1;
this.y.onError(this.f, 1, 0);
}
}
/* JADX INFO: Access modifiers changed from: private */
public void f() {
if (this.l.e()) {
this.l.c();
} else {
this.l.i();
}
}
public void a(Uri uri, boolean z) {
this.b = uri;
this.s = z;
this.r = 0;
e();
requestLayout();
invalidate();
}
public void a() {
MediaPlayer mediaPlayer = this.f;
if (mediaPlayer != null) {
mediaPlayer.stop();
this.f.release();
this.f = null;
this.c = 0;
this.d = 0;
}
}
public VideoView(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0);
}
public VideoView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.a = "VideoView";
this.c = 0;
this.d = 0;
this.e = null;
this.f = null;
this.t = new MediaPlayer.OnVideoSizeChangedListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.1
@Override // android.media.MediaPlayer.OnVideoSizeChangedListener
public void onVideoSizeChanged(MediaPlayer mediaPlayer, int i2, int i22) {
VideoView.this.h = mediaPlayer.getVideoWidth();
VideoView.this.i = mediaPlayer.getVideoHeight();
if (VideoView.this.h == 0 || VideoView.this.i == 0) {
return;
}
VideoView.this.getHolder().setFixedSize(VideoView.this.h, VideoView.this.i);
VideoView.this.requestLayout();
}
};
this.u = new MediaPlayer.OnPreparedListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.2
@Override // android.media.MediaPlayer.OnPreparedListener
public void onPrepared(MediaPlayer mediaPlayer) {
VideoView.this.c = 2;
if (VideoView.this.n != null) {
VideoView.this.n.onPrepared(VideoView.this.f);
}
if (VideoView.this.l != null) {
VideoView.this.l.setEnabled(true);
}
VideoView.this.h = mediaPlayer.getVideoWidth();
VideoView.this.i = mediaPlayer.getVideoHeight();
int i2 = VideoView.this.r;
if (i2 != 0) {
VideoView.this.seekTo(i2);
}
if (VideoView.this.h == 0 || VideoView.this.i == 0) {
if (VideoView.this.d == 3) {
VideoView.this.start();
return;
}
return;
}
VideoView.this.getHolder().setFixedSize(VideoView.this.h, VideoView.this.i);
if (VideoView.this.j == VideoView.this.h && VideoView.this.k == VideoView.this.i) {
if (VideoView.this.d == 3) {
VideoView.this.start();
if (VideoView.this.l != null) {
VideoView.this.l.i();
return;
}
return;
}
if (VideoView.this.isPlaying()) {
return;
}
if ((i2 != 0 || VideoView.this.getCurrentPosition() > 0) && VideoView.this.l != null) {
VideoView.this.l.i();
}
}
}
};
this.v = new MediaPlayer.OnCompletionListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.3
@Override // android.media.MediaPlayer.OnCompletionListener
public void onCompletion(MediaPlayer mediaPlayer) {
VideoView.this.c = 5;
VideoView.this.d = 5;
if (VideoView.this.m != null) {
VideoView.this.m.onCompletion(VideoView.this.f);
}
}
};
this.x = new MediaPlayer.OnInfoListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.4
@Override // android.media.MediaPlayer.OnInfoListener
public boolean onInfo(MediaPlayer mediaPlayer, int i2, int i22) {
if (VideoView.this.q == null) {
return true;
}
VideoView.this.q.onInfo(mediaPlayer, i2, i22);
return true;
}
};
this.y = new MediaPlayer.OnErrorListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.5
@Override // android.media.MediaPlayer.OnErrorListener
public boolean onError(MediaPlayer mediaPlayer, int i2, int i22) {
Log.d(VideoView.this.a, "Error: " + i2 + "," + i22);
VideoView.this.c = -1;
VideoView.this.d = -1;
if (VideoView.this.l != null) {
VideoView.this.l.c();
}
if (VideoView.this.p == null || VideoView.this.p.onError(VideoView.this.f, i2, i22)) {
}
return true;
}
};
this.z = new MediaPlayer.OnBufferingUpdateListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.6
@Override // android.media.MediaPlayer.OnBufferingUpdateListener
public void onBufferingUpdate(MediaPlayer mediaPlayer, int i2) {
VideoView.this.o = i2;
}
};
this.A = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.7
@Override // android.view.GestureDetector.SimpleOnGestureListener, android.view.GestureDetector.OnGestureListener
public boolean onSingleTapUp(MotionEvent motionEvent) {
if (!VideoView.this.d() || VideoView.this.l == null) {
return false;
}
VideoView.this.f();
return false;
}
});
this.B = new SurfaceHolder.Callback() { // from class: com.twitter.sdk.android.tweetui.internal.VideoView.8
@Override // android.view.SurfaceHolder.Callback
public void surfaceChanged(SurfaceHolder surfaceHolder, int i2, int i22, int i3) {
VideoView.this.j = i22;
VideoView.this.k = i3;
boolean z = VideoView.this.d == 3;
boolean z2 = VideoView.this.h == i22 && VideoView.this.i == i3;
if (VideoView.this.f != null && z && z2) {
if (VideoView.this.r != 0) {
VideoView videoView = VideoView.this;
videoView.seekTo(videoView.r);
}
VideoView.this.start();
if (VideoView.this.l != null) {
VideoView.this.l.i();
}
}
}
@Override // android.view.SurfaceHolder.Callback
public void surfaceCreated(SurfaceHolder surfaceHolder) {
VideoView.this.e = surfaceHolder;
VideoView.this.e();
}
@Override // android.view.SurfaceHolder.Callback
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
VideoView.this.e = null;
if (VideoView.this.l != null) {
VideoView.this.l.c();
}
VideoView.this.a(true);
}
};
c();
}
/* JADX INFO: Access modifiers changed from: private */
public void a(boolean z) {
MediaPlayer mediaPlayer = this.f;
if (mediaPlayer != null) {
mediaPlayer.reset();
this.f.release();
this.f = null;
this.c = 0;
if (z) {
this.d = 0;
}
}
}
}