From 8f6d5114adf0e09dcdd4c62fc923828e7172b9f7 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 25 Nov 2022 09:10:11 +0800 Subject: [PATCH] Fix control focus --- .../android/tv/ui/activity/DetailActivity.java | 14 ++++++-------- .../android/tv/ui/activity/LiveActivity.java | 10 +++++----- app/src/leanback/res/layout/view_control_live.xml | 1 - app/src/leanback/res/layout/view_control_vod.xml | 1 - .../java/com/fongmi/android/tv/player/Players.java | 4 ---- 5 files changed, 11 insertions(+), 19 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 4b52e78f5..e878c7042 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -503,7 +503,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void onToggle() { if (isVisible(mBinding.control.getRoot())) hideControl(); - else showControl(); + else showControl(mBinding.control.next); } private void showProgress() { @@ -533,8 +533,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mBinding.widget.info.setVisibility(View.GONE); } - private void showControl() { + private void showControl(View view) { mBinding.control.getRoot().setVisibility(View.VISIBLE); + view.requestFocus(); setR1Callback(); } @@ -652,7 +653,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis TrackSelectionDialog.setVisible(mPlayers.exo(), mBinding.control.tracks); break; case Player.STATE_ENDED: - if (mPlayers.canNext()) checkNext(); + checkNext(); break; default: if (!event.isRetry() || mPlayers.addRetry() > 2) onError(event.getMsg()); @@ -721,15 +722,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis public void onKeyUp() { long current = mPlayers.getPosition(); long half = mPlayers.getDuration() / 2; - if (current < half) mBinding.control.opening.requestFocus(); - else mBinding.control.ending.requestFocus(); - showControl(); + showControl(current < half ? mBinding.control.opening : mBinding.control.ending); } @Override public void onKeyDown() { - mBinding.control.next.requestFocus(); - showControl(); + showControl(mBinding.control.next); } @Override 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 b91c4f368..10503539f 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 @@ -323,8 +323,9 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mBinding.widget.progress.getRoot().setVisibility(View.GONE); } - private void showControl() { + private void showControl(View view) { mBinding.control.getRoot().setVisibility(View.VISIBLE); + view.requestFocus(); setR3Callback(); } @@ -571,10 +572,9 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public boolean onLongPress() { - if (isVisible(mBinding.control.home)) mBinding.control.home.requestFocus(); - else if (isVisible(mBinding.control.line)) mBinding.control.line.requestFocus(); - else mBinding.control.speed.requestFocus(); - showControl(); + if (isVisible(mBinding.control.home)) showControl(mBinding.control.home); + else if (isVisible(mBinding.control.line)) showControl(mBinding.control.line); + else showControl(mBinding.control.player); hideInfo(); hideUI(); return true; diff --git a/app/src/leanback/res/layout/view_control_live.xml b/app/src/leanback/res/layout/view_control_live.xml index eff5f3080..0160f3d95 100644 --- a/app/src/leanback/res/layout/view_control_live.xml +++ b/app/src/leanback/res/layout/view_control_live.xml @@ -14,7 +14,6 @@ diff --git a/app/src/leanback/res/layout/view_control_vod.xml b/app/src/leanback/res/layout/view_control_vod.xml index f13602820..1109ca406 100644 --- a/app/src/leanback/res/layout/view_control_vod.xml +++ b/app/src/leanback/res/layout/view_control_vod.xml @@ -21,7 +21,6 @@ android:id="@+id/actionLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:animateLayoutChanges="true" android:gravity="center_vertical" android:orientation="horizontal"> 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 3ff0dbe70..fef4ee4fc 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 @@ -204,10 +204,6 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM return getDuration() > 5 * 60 * 1000; } - public boolean canNext() { - return getPosition() >= getDuration(); - } - public void start(Channel channel) { setMediaSource(channel.getHeaders(), channel.getUrl()); }