From c335fedd470cbfe2c68693b8b767793090a5e811 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 18 Apr 2023 17:45:24 +0800 Subject: [PATCH] [leanback] fix live bug --- .../android/tv/ui/activity/LiveActivity.java | 15 ++++++++------- .../leanback/res/drawable/shape_bottom_sheet.xml | 4 ---- app/src/leanback/res/layout/dialog_pass.xml | 8 ++------ app/src/leanback/res/layout/dialog_track.xml | 7 ++----- 4 files changed, 12 insertions(+), 22 deletions(-) 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 e6fcfa10e..5102fe57e 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 @@ -125,11 +125,11 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mR2 = this::hideControl; mR3 = this::setChannelActivated; mR4 = this::setTraffic; + mHides = new ArrayList<>(); mPlayers = new Players().init(); mKeyDown = CustomKeyDownLive.create(this); mFormatDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); mFormatTime = new SimpleDateFormat("yyyy-MM-ddHH:mm", Locale.getDefault()); - mHides = new ArrayList<>(); setRecyclerView(); setVideoView(); setViewModel(); @@ -223,6 +223,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void setPosition(int[] position) { if (position[0] == -1) return; if (mGroupAdapter.size() == 1) return; + if (position[0] >= mGroupAdapter.size()) return; mGroup = (Group) mGroupAdapter.get(position[0]); mBinding.group.setSelectedPosition(position[0]); if (mGroup.getChannel().isEmpty()) return; @@ -233,12 +234,12 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void setPosition() { if (mChannel == null) return; - Group group = mChannel.getGroup(); - int position = mGroupAdapter.indexOf(group); + mGroup = mChannel.getGroup(); + int position = mGroupAdapter.indexOf(mGroup); boolean change = mBinding.group.getSelectedPosition() != position; if (change) mBinding.group.setSelectedPosition(position); - if (change) mChannelAdapter.setItems(group.getChannel(), null); - mBinding.channel.setSelectedPosition(group.getPosition()); + if (change) mChannelAdapter.setItems(mGroup.getChannel(), null); + mBinding.channel.setSelectedPosition(mGroup.getPosition()); } private void onChildSelected(@Nullable RecyclerView.ViewHolder child, Group group) { @@ -390,8 +391,8 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onItemClick(Group item) { - mChannelAdapter.setItems(mGroup.getChannel(), null); - mBinding.channel.setSelectedPosition(mGroup.getPosition()); + mChannelAdapter.setItems(item.getChannel(), null); + mBinding.channel.setSelectedPosition(item.getPosition()); if (!item.isKeep() || ++count < 5 || mHides.isEmpty()) return; App.removeCallbacks(mR0); PassDialog.show(this); diff --git a/app/src/leanback/res/drawable/shape_bottom_sheet.xml b/app/src/leanback/res/drawable/shape_bottom_sheet.xml index 9e7396996..f95f9d322 100644 --- a/app/src/leanback/res/drawable/shape_bottom_sheet.xml +++ b/app/src/leanback/res/drawable/shape_bottom_sheet.xml @@ -8,8 +8,4 @@ android:topLeftRadius="12dp" android:topRightRadius="12dp" /> - - \ No newline at end of file diff --git a/app/src/leanback/res/layout/dialog_pass.xml b/app/src/leanback/res/layout/dialog_pass.xml index c6340e08c..522aa19d0 100644 --- a/app/src/leanback/res/layout/dialog_pass.xml +++ b/app/src/leanback/res/layout/dialog_pass.xml @@ -2,18 +2,15 @@ + android:padding="16dp"> \ No newline at end of file + app:maxHeight="220dp" /> \ No newline at end of file