From a5ee545097edd02c482cd508a4361f88cfeafc86 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 30 Jan 2024 01:22:28 +0800 Subject: [PATCH] Fix bug --- .../com/fongmi/android/tv/ui/activity/LiveActivity.java | 9 +++++---- .../com/fongmi/android/tv/ui/activity/LiveActivity.java | 9 ++++++--- .../com/fongmi/android/tv/ui/adapter/GroupAdapter.java | 3 +++ 3 files changed, 14 insertions(+), 7 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 5bbcf6a17..cebae687e 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 @@ -280,11 +280,13 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mBinding.divide.setVisibility(live.getWidth() == 0 ? View.GONE : View.VISIBLE); } - private void setWidth(Group group) { + private Group setWidth(Group group) { int logo = ResUtil.dp2px(60); int padding = ResUtil.dp2px(60); + if (group.isKeep()) group.setWidth(0); if (group.getWidth() == 0) for (Channel item : group.getChannel()) group.setWidth(Math.max(group.getWidth(), (item.getLogo().isEmpty() ? 0 : logo) + ResUtil.getTextWidth(item.getNumber() + item.getName(), 16))); - mBinding.channel.getLayoutParams().width = Math.min(group.getWidth() + padding, ResUtil.getScreenWidth() / 2); + mBinding.channel.getLayoutParams().width = group.getWidth() == 0 ? 0 : Math.min(group.getWidth() + padding, ResUtil.getScreenWidth() / 2); + return group; } private void setPosition(int[] position) { @@ -520,8 +522,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onItemClick(Group item) { - setWidth(item); - mChannelAdapter.setItems(item.getChannel(), null); + mChannelAdapter.setItems(setWidth(item).getChannel(), null); mBinding.channel.setSelectedPosition(Math.max(item.getPosition(), 0)); if (!item.isKeep() || ++count < 5 || mHides.isEmpty()) return; if (Biometric.enable()) Biometric.show(this); 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 6f59127e9..19d4a275b 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 @@ -311,17 +311,21 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List mBinding.divide.setVisibility(live.getWidth() == 0 ? View.GONE : View.VISIBLE); } - private void setWidth(Group group) { + @Override + public void setWidth(Group group) { int logo = ResUtil.dp2px(56); int padding = ResUtil.dp2px(60); + if (group.isKeep()) group.setWidth(0); if (group.getWidth() == 0) for (Channel item : group.getChannel()) group.setWidth(Math.max(group.getWidth(), (item.getLogo().isEmpty() ? 0 : logo) + ResUtil.getTextWidth(item.getNumber() + item.getName(), 14))); mBinding.channel.getLayoutParams().width = group.getWidth() == 0 ? 0 : Math.min(group.getWidth() + padding, ResUtil.getScreenWidth() / 2); } private void setWidth(Epg epg) { int padding = ResUtil.dp2px(40); + if (epg.getList().isEmpty()) return; + int minWidth = ResUtil.getTextWidth(epg.getList().get(0).getTime(), 12); if (epg.getWidth() == 0) for (EpgData item : epg.getList()) epg.setWidth(Math.max(epg.getWidth(), ResUtil.getTextWidth(item.getTitle(), 14))); - mBinding.widget.epgData.getLayoutParams().width = epg.getWidth() == 0 ? 0 : Math.min(epg.getWidth() + padding, ResUtil.getScreenWidth() / 3); + mBinding.widget.epgData.getLayoutParams().width = epg.getWidth() == 0 ? 0 : Math.min(Math.max(epg.getWidth(), minWidth) + padding, ResUtil.getScreenWidth() / 3); } private void setPosition(int[] position) { @@ -599,7 +603,6 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List @Override public void onItemClick(Group item) { - setWidth(item); mGroupAdapter.setSelected(mGroup = item); mChannelAdapter.addAll(item.getChannel()); mChannelAdapter.setSelected(item.getPosition()); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/GroupAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/GroupAdapter.java index 39f348aff..2f8e7fadd 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/GroupAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/GroupAdapter.java @@ -24,6 +24,8 @@ public class GroupAdapter extends RecyclerView.Adapter public interface OnClickListener { + void setWidth(Group item); + void onItemClick(Group item); } @@ -59,6 +61,7 @@ public class GroupAdapter extends RecyclerView.Adapter public void setSelected(int position) { for (int i = 0; i < mItems.size(); i++) mItems.get(i).setSelected(i == position); notifyItemRangeChanged(0, getItemCount()); + mListener.setWidth(mItems.get(position)); } public void setSelected(Group group) {