From 676b6091b32f837e022d290e934e08e81c5dbde9 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 24 Feb 2025 12:08:19 +0800 Subject: [PATCH] Clean code --- .../android/tv/ui/activity/VideoActivity.java | 11 ++++++--- .../com/fongmi/android/tv/player/Players.java | 24 +++++++++---------- .../android/tv/ui/activity/VideoActivity.java | 11 ++++++--- 3 files changed, 28 insertions(+), 18 deletions(-) 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 8409db3e0..0c512647d 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 @@ -552,9 +552,14 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void checkDanmaku(List items) { - mBinding.danmaku.release(); mBinding.danmaku.setVisibility(items.isEmpty() ? View.GONE : View.VISIBLE); - if (!items.isEmpty()) App.execute(() -> mBinding.danmaku.prepare(new Parser(items.get(0).getUrl()), mDanmakuContext)); + if (items.isEmpty()) mBinding.danmaku.release(); + else checkDanmaku(items.get(0).getUrl()); + } + + private void checkDanmaku(String path) { + mBinding.danmaku.release(); + if (!TextUtils.isEmpty(path)) App.execute(() -> mBinding.danmaku.prepare(new Parser(path), mDanmakuContext)); } private void setFlagActivated(Flag item) { @@ -1076,7 +1081,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List if (isRedirect()) return; if (event.getType() == RefreshEvent.Type.DETAIL) getDetail(); else if (event.getType() == RefreshEvent.Type.PLAYER) onRefresh(); - else if (event.getType() == RefreshEvent.Type.DANMAKU) checkDanmaku(Danmaku.from(event.getPath())); + else if (event.getType() == RefreshEvent.Type.DANMAKU) checkDanmaku(event.getPath()); else if (event.getType() == RefreshEvent.Type.SUBTITLE) mPlayers.setSub(Sub.from(event.getPath())); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 02c611620..50d9ec62b 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -83,7 +83,7 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call private Map headers; private MediaSessionCompat session; - private DanmakuView danmakuView; + private DanmakuView danmaku; private ExoPlayer exoPlayer; private ParseJob parseJob; private PlayerView view; @@ -141,7 +141,7 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call public void setDanmakuView(DanmakuView view) { view.setCallback(this); - danmakuView = view; + danmaku = view; } public ExoPlayer get() { @@ -220,7 +220,7 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call } public boolean haveDanmaku() { - return danmakuView != null && danmakuView.isPrepared(); + return danmaku != null && danmaku.isPrepared(); } public boolean isPlaying() { @@ -327,8 +327,8 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call public void seekTo(long time) { if (exoPlayer != null) exoPlayer.seekTo(time); - if (haveDanmaku()) danmakuView.seekTo(time); - if (haveDanmaku()) danmakuView.hide(); + if (haveDanmaku()) danmaku.seekTo(time); + if (haveDanmaku()) danmaku.hide(); } public void seekToDefaultPosition() { @@ -342,17 +342,17 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call public void play() { if (exoPlayer != null) exoPlayer.play(); - if (haveDanmaku()) danmakuView.resume(); + if (haveDanmaku()) danmaku.resume(); } public void pause() { if (exoPlayer != null) exoPlayer.pause(); - if (haveDanmaku()) danmakuView.pause(); + if (haveDanmaku()) danmaku.pause(); } public void stop() { if (exoPlayer != null) exoPlayer.stop(); - if (haveDanmaku()) danmakuView.stop(); + if (haveDanmaku()) danmaku.stop(); stopParse(); } @@ -633,10 +633,10 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call @Override public void prepared() { App.post(() -> { - if (isPlaying()) danmakuView.start(getPosition()); - else danmakuView.pause(); - if (Setting.isDanmakuShow()) danmakuView.show(); - else danmakuView.hide(); + if (isPlaying()) danmaku.start(getPosition()); + else danmaku.pause(); + if (Setting.isDanmakuShow()) danmaku.show(); + else danmaku.hide(); }); } 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 54b6af268..03c7c01b4 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 @@ -558,9 +558,14 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private void checkDanmaku(List items) { - mBinding.danmaku.release(); mBinding.danmaku.setVisibility(items.isEmpty() ? View.GONE : View.VISIBLE); - if (!items.isEmpty()) App.execute(() -> mBinding.danmaku.prepare(new Parser(items.get(0).getUrl()), mDanmakuContext)); + if (items.isEmpty()) mBinding.danmaku.release(); + else checkDanmaku(items.get(0).getUrl()); + } + + private void checkDanmaku(String path) { + mBinding.danmaku.release(); + if (!TextUtils.isEmpty(path)) App.execute(() -> mBinding.danmaku.prepare(new Parser(path), mDanmakuContext)); } @Override @@ -1120,7 +1125,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo if (isRedirect()) return; if (event.getType() == RefreshEvent.Type.DETAIL) getDetail(); else if (event.getType() == RefreshEvent.Type.PLAYER) onRefresh(); - else if (event.getType() == RefreshEvent.Type.DANMAKU) checkDanmaku(Danmaku.from(event.getPath())); + else if (event.getType() == RefreshEvent.Type.DANMAKU) checkDanmaku(event.getPath()); else if (event.getType() == RefreshEvent.Type.SUBTITLE) mPlayers.setSub(Sub.from(event.getPath())); }