232 lines
7.6 KiB
Java
232 lines
7.6 KiB
Java
package com.twitter.sdk.android.tweetui.internal;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.os.Handler;
|
|
import android.os.Message;
|
|
import android.util.AttributeSet;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.ImageButton;
|
|
import android.widget.SeekBar;
|
|
import android.widget.TextView;
|
|
import com.twitter.sdk.android.tweetui.R$drawable;
|
|
import com.twitter.sdk.android.tweetui.R$id;
|
|
import com.twitter.sdk.android.tweetui.R$layout;
|
|
import com.twitter.sdk.android.tweetui.R$string;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class VideoControlView extends FrameLayout {
|
|
MediaPlayerControl a;
|
|
ImageButton b;
|
|
TextView c;
|
|
TextView d;
|
|
SeekBar e;
|
|
|
|
@SuppressLint({"HandlerLeak"})
|
|
private final Handler f;
|
|
|
|
public interface MediaPlayerControl {
|
|
int getBufferPercentage();
|
|
|
|
int getCurrentPosition();
|
|
|
|
int getDuration();
|
|
|
|
boolean isPlaying();
|
|
|
|
void pause();
|
|
|
|
void seekTo(int i);
|
|
|
|
void start();
|
|
}
|
|
|
|
public VideoControlView(Context context) {
|
|
super(context);
|
|
this.f = new Handler() { // from class: com.twitter.sdk.android.tweetui.internal.VideoControlView.1
|
|
@Override // android.os.Handler
|
|
public void handleMessage(Message message) {
|
|
if (message.what == 1001) {
|
|
VideoControlView videoControlView = VideoControlView.this;
|
|
if (videoControlView.a == null) {
|
|
return;
|
|
}
|
|
videoControlView.k();
|
|
VideoControlView.this.l();
|
|
if (VideoControlView.this.e() && VideoControlView.this.a.isPlaying()) {
|
|
sendMessageDelayed(obtainMessage(1001), 500L);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
View.OnClickListener b() {
|
|
return new View.OnClickListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoControlView.2
|
|
@Override // android.view.View.OnClickListener
|
|
public void onClick(View view) {
|
|
if (VideoControlView.this.a.isPlaying()) {
|
|
VideoControlView.this.a.pause();
|
|
} else {
|
|
VideoControlView.this.a.start();
|
|
}
|
|
VideoControlView.this.i();
|
|
}
|
|
};
|
|
}
|
|
|
|
void c() {
|
|
this.f.removeMessages(1001);
|
|
AnimationUtils.b(this, 150);
|
|
}
|
|
|
|
void d() {
|
|
((LayoutInflater) getContext().getSystemService("layout_inflater")).inflate(R$layout.tw__video_control, this);
|
|
this.b = (ImageButton) findViewById(R$id.tw__state_control);
|
|
this.c = (TextView) findViewById(R$id.tw__current_time);
|
|
this.d = (TextView) findViewById(R$id.tw__duration);
|
|
this.e = (SeekBar) findViewById(R$id.tw__progress);
|
|
this.e.setMax(1000);
|
|
this.e.setOnSeekBarChangeListener(a());
|
|
this.b.setOnClickListener(b());
|
|
setDuration(0);
|
|
setCurrentTime(0);
|
|
a(0, 0, 0);
|
|
}
|
|
|
|
public boolean e() {
|
|
return getVisibility() == 0;
|
|
}
|
|
|
|
void f() {
|
|
this.b.setImageResource(R$drawable.tw__video_pause_btn);
|
|
this.b.setContentDescription(getContext().getString(R$string.tw__pause));
|
|
}
|
|
|
|
void g() {
|
|
this.b.setImageResource(R$drawable.tw__video_play_btn);
|
|
this.b.setContentDescription(getContext().getString(R$string.tw__play));
|
|
}
|
|
|
|
void h() {
|
|
this.b.setImageResource(R$drawable.tw__video_replay_btn);
|
|
this.b.setContentDescription(getContext().getString(R$string.tw__replay));
|
|
}
|
|
|
|
void i() {
|
|
this.f.sendEmptyMessage(1001);
|
|
AnimationUtils.a(this, 150);
|
|
}
|
|
|
|
public void j() {
|
|
this.f.sendEmptyMessage(1001);
|
|
}
|
|
|
|
void k() {
|
|
int duration = this.a.getDuration();
|
|
int currentPosition = this.a.getCurrentPosition();
|
|
int bufferPercentage = this.a.getBufferPercentage();
|
|
setDuration(duration);
|
|
setCurrentTime(currentPosition);
|
|
a(currentPosition, duration, bufferPercentage);
|
|
}
|
|
|
|
void l() {
|
|
if (this.a.isPlaying()) {
|
|
f();
|
|
} else if (this.a.getCurrentPosition() > Math.max(this.a.getDuration() - 500, 0)) {
|
|
h();
|
|
} else {
|
|
g();
|
|
}
|
|
}
|
|
|
|
@Override // android.view.View
|
|
protected void onFinishInflate() {
|
|
super.onFinishInflate();
|
|
d();
|
|
}
|
|
|
|
void setCurrentTime(int i) {
|
|
this.c.setText(MediaTimeUtils.a(i));
|
|
}
|
|
|
|
void setDuration(int i) {
|
|
this.d.setText(MediaTimeUtils.a(i));
|
|
}
|
|
|
|
public void setMediaPlayer(MediaPlayerControl mediaPlayerControl) {
|
|
this.a = mediaPlayerControl;
|
|
}
|
|
|
|
SeekBar.OnSeekBarChangeListener a() {
|
|
return new SeekBar.OnSeekBarChangeListener() { // from class: com.twitter.sdk.android.tweetui.internal.VideoControlView.3
|
|
@Override // android.widget.SeekBar.OnSeekBarChangeListener
|
|
public void onProgressChanged(SeekBar seekBar, int i, boolean z) {
|
|
if (z) {
|
|
int duration = (int) ((VideoControlView.this.a.getDuration() * i) / 1000);
|
|
VideoControlView.this.a.seekTo(duration);
|
|
VideoControlView.this.setCurrentTime(duration);
|
|
}
|
|
}
|
|
|
|
@Override // android.widget.SeekBar.OnSeekBarChangeListener
|
|
public void onStartTrackingTouch(SeekBar seekBar) {
|
|
VideoControlView.this.f.removeMessages(1001);
|
|
}
|
|
|
|
@Override // android.widget.SeekBar.OnSeekBarChangeListener
|
|
public void onStopTrackingTouch(SeekBar seekBar) {
|
|
VideoControlView.this.f.sendEmptyMessage(1001);
|
|
}
|
|
};
|
|
}
|
|
|
|
public VideoControlView(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
this.f = new Handler() { // from class: com.twitter.sdk.android.tweetui.internal.VideoControlView.1
|
|
@Override // android.os.Handler
|
|
public void handleMessage(Message message) {
|
|
if (message.what == 1001) {
|
|
VideoControlView videoControlView = VideoControlView.this;
|
|
if (videoControlView.a == null) {
|
|
return;
|
|
}
|
|
videoControlView.k();
|
|
VideoControlView.this.l();
|
|
if (VideoControlView.this.e() && VideoControlView.this.a.isPlaying()) {
|
|
sendMessageDelayed(obtainMessage(1001), 500L);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
void a(int i, int i2, int i3) {
|
|
this.e.setProgress((int) (i2 > 0 ? (i * 1000) / i2 : 0L));
|
|
this.e.setSecondaryProgress(i3 * 10);
|
|
}
|
|
|
|
public VideoControlView(Context context, AttributeSet attributeSet, int i) {
|
|
super(context, attributeSet, i);
|
|
this.f = new Handler() { // from class: com.twitter.sdk.android.tweetui.internal.VideoControlView.1
|
|
@Override // android.os.Handler
|
|
public void handleMessage(Message message) {
|
|
if (message.what == 1001) {
|
|
VideoControlView videoControlView = VideoControlView.this;
|
|
if (videoControlView.a == null) {
|
|
return;
|
|
}
|
|
videoControlView.k();
|
|
VideoControlView.this.l();
|
|
if (VideoControlView.this.e() && VideoControlView.this.a.isPlaying()) {
|
|
sendMessageDelayed(obtainMessage(1001), 500L);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
}
|