From 72baf2c8d7bd4d0109a99dda28d0951fb122f6c6 Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Tue, 21 Oct 2025 02:52:38 +0800 Subject: [PATCH] Clean code --- .../android/tv/ui/activity/CastActivity.java | 2 +- .../android/tv/ui/activity/LiveActivity.java | 2 +- .../android/tv/ui/activity/VideoActivity.java | 2 +- .../android/tv/ui/custom/CustomSeekView.java | 30 +++++++------------ .../android/tv/ui/activity/LiveActivity.java | 2 +- .../android/tv/ui/activity/VideoActivity.java | 2 +- 6 files changed, 16 insertions(+), 24 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java index 2d584f9ae..3bb34ba24 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java @@ -103,7 +103,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownVod.Liste @Override @SuppressLint("ClickableViewAccessibility") protected void initEvent() { - mBinding.control.seek.setListener(mPlayers); + mBinding.control.seek.setPlayer(mPlayers); mBinding.control.speed.setUpListener(this::onSpeedAdd); mBinding.control.speed.setDownListener(this::onSpeedSub); mBinding.control.text.setUpListener(this::onSubtitleClick); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 8ddead8e2..eea0f5ffd 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -153,7 +153,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mBinding.group.setListener(this); mBinding.channel.setListener(this); mBinding.epgData.setListener(this); - mBinding.control.seek.setListener(mPlayers); + mBinding.control.seek.setPlayer(mPlayers); mBinding.control.text.setOnClickListener(this::onTrack); mBinding.control.audio.setOnClickListener(this::onTrack); mBinding.control.video.setOnClickListener(this::onTrack); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 65533dc28..df8909a7d 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -290,7 +290,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List @Override @SuppressLint("ClickableViewAccessibility") protected void initEvent() { - mBinding.control.seek.setListener(mPlayers); + mBinding.control.seek.setPlayer(mPlayers); mBinding.desc.setOnClickListener(view -> onDesc()); mBinding.keep.setOnClickListener(view -> onKeep()); mBinding.video.setOnClickListener(view -> onVideo()); diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java index 91d454dd4..0c698ac1a 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java @@ -22,17 +22,16 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen private static final int MAX_UPDATE_INTERVAL_MS = 1000; private static final int MIN_UPDATE_INTERVAL_MS = 200; - private TextView positionView; - private TextView durationView; - private DefaultTimeBar timeBar; - - private Runnable refresh; - private Players player; + private final TextView positionView; + private final TextView durationView; + private final DefaultTimeBar timeBar; + private final Runnable refresh; private long currentDuration; private long currentPosition; private long currentBuffered; private boolean scrubbing; + private Players player; public CustomSeekView(Context context) { this(context, null); @@ -45,11 +44,6 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen public CustomSeekView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); LayoutInflater.from(context).inflate(R.layout.view_control_seek, this); - init(); - start(); - } - - private void init() { positionView = findViewById(R.id.position); durationView = findViewById(R.id.duration); timeBar = findViewById(R.id.timeBar); @@ -57,12 +51,9 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen refresh = this::refresh; } - public void setListener(Players player) { - this.player = player; - } - - private void start() { + public void setPlayer(Players player) { removeCallbacks(refresh); + this.player = player; post(refresh); } @@ -73,17 +64,17 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen boolean positionChanged = position != currentPosition; boolean durationChanged = duration != currentDuration; boolean bufferedChanged = buffered != currentBuffered; - currentDuration = duration; currentPosition = position; + currentDuration = duration; currentBuffered = buffered; if (durationChanged) { setKeyTimeIncrement(duration); timeBar.setDuration(duration); - durationView.setText(player.stringToTime(duration < 0 ? 0 : duration)); + durationView.setText(player.stringToTime(Math.max(0, duration))); } if (positionChanged && !scrubbing) { timeBar.setPosition(position); - positionView.setText(player.stringToTime(position < 0 ? 0 : position)); + positionView.setText(player.stringToTime(Math.max(0, position))); } if (bufferedChanged) { timeBar.setBufferedPosition(buffered); @@ -94,6 +85,7 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen durationView.setText("00:00"); timeBar.setPosition(currentPosition = 0); timeBar.setDuration(currentDuration = 0); + timeBar.setBufferedPosition(currentBuffered = 0); postDelayed(refresh, MIN_UPDATE_INTERVAL_MS); } else if (player.isPlaying()) { postDelayed(refresh, delayMs(position)); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 3b90feab6..94eefbdf2 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -161,7 +161,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener @Override @SuppressLint("ClickableViewAccessibility") protected void initEvent() { - mBinding.control.seek.setListener(mPlayers); + mBinding.control.seek.setPlayer(mPlayers); mBinding.control.back.setOnClickListener(view -> onBack()); mBinding.control.cast.setOnClickListener(view -> onCast()); mBinding.control.info.setOnClickListener(view -> onInfo()); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 13d55e8db..4fad6c944 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -306,6 +306,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo @Override @SuppressLint("ClickableViewAccessibility") protected void initEvent() { + mBinding.control.seek.setPlayer(mPlayers); mBinding.name.setOnClickListener(view -> onName()); mBinding.more.setOnClickListener(view -> onMore()); mBinding.actor.setOnClickListener(view -> onActor()); @@ -347,7 +348,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo mBinding.video.setOnTouchListener((view, event) -> mKeyDown.onTouchEvent(event)); mBinding.control.action.getRoot().setOnTouchListener(this::onActionTouch); mBinding.swipeLayout.setOnRefreshListener(this::onSwipeRefresh); - mBinding.control.seek.setListener(mPlayers); } private WindowInsetsCompat setStatusBar(WindowInsetsCompat insets) {