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 0cd18f215..1cd708f12 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 @@ -231,6 +231,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mViewModel.live.observe(this, live -> { hideProgress(); setGroup(live); + setWidth(live); }); } @@ -242,14 +243,18 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick showProgress(); } - private void setGroup(Live home) { + private void setGroup(Live live) { List items = new ArrayList<>(); items.add(Group.create(R.string.keep)); - for (Group group : home.getGroups()) (group.isHidden() ? mHides : items).add(group); + for (Group group : live.getGroups()) (group.isHidden() ? mHides : items).add(group); mGroupAdapter.setItems(items, null); setPosition(LiveConfig.get().find(items)); - mBinding.control.home.setText(home.getName()); - mBinding.group.getLayoutParams().width = home.getWidth(); + mBinding.control.home.setText(live.getName()); + } + + private void setWidth(Live live) { + for (Group group : live.getGroups()) live.setWidth(Math.max(live.getWidth(), ResUtil.getTextWidth(group.getName(), 16))); + mBinding.group.getLayoutParams().width = live.getWidth() + ResUtil.dp2px(live.hasLogo() ? 98 : 50); } private void setPosition(int[] position) { diff --git a/app/src/leanback/res/layout/adapter_group.xml b/app/src/leanback/res/layout/adapter_group.xml index 9e7006304..87dae9d74 100644 --- a/app/src/leanback/res/layout/adapter_group.xml +++ b/app/src/leanback/res/layout/adapter_group.xml @@ -24,7 +24,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:duplicateParentState="true" - android:ellipsize="marquee" android:singleLine="true" android:textColor="@color/group" android:textSize="16sp" diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Live.java b/app/src/main/java/com/fongmi/android/tv/bean/Live.java index 1d67f8d63..762b0b793 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Live.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Live.java @@ -5,7 +5,6 @@ import android.text.TextUtils; import com.fongmi.android.tv.App; import com.fongmi.android.tv.Constant; -import com.fongmi.android.tv.utils.ResUtil; import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; @@ -52,6 +51,7 @@ public class Live { private Core core; private boolean activated; + private int width; public static Live objectFrom(JsonElement element) { return App.gson().fromJson(element, Live.class); @@ -152,6 +152,14 @@ public class Live { this.activated = item.equals(this); } + public int getWidth() { + return width; + } + + public void setWidth(int width) { + this.width = width; + } + public Live check() { boolean proxy = getChannels().size() > 0 && getChannels().get(0).getUrls().size() > 0 && getChannels().get(0).getUrls().get(0).startsWith("proxy"); if (proxy) setProxy(); @@ -175,13 +183,6 @@ public class Live { return false; } - public int getWidth() { - int width = 0; - for (Group group : getGroups()) width = Math.max(width, ResUtil.getTextWidth(group.getName(), 16) + ResUtil.dp2px(60)); - if (hasLogo()) width += ResUtil.dp2px(48); - return width; - } - @Override public boolean equals(Object obj) { if (this == obj) return true; 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 56c2d157a..a5dd51c2e 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 @@ -250,6 +250,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List mViewModel.live.observe(this, live -> { hideProgress(); setGroup(live); + setWidth(live); }); } @@ -261,13 +262,18 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List showProgress(); } - private void setGroup(Live home) { + private void setGroup(Live live) { List items = new ArrayList<>(); items.add(Group.create(R.string.keep)); - for (Group group : home.getGroups()) (group.isHidden() ? mHides : items).add(group); + for (Group group : live.getGroups()) (group.isHidden() ? mHides : items).add(group); mGroupAdapter.addAll(items); setPosition(LiveConfig.get().find(items)); - mBinding.control.action.home.setText(home.getName()); + mBinding.control.action.home.setText(live.getName()); + } + + private void setWidth(Live live) { + for (Group group : live.getGroups()) live.setWidth(Math.max(live.getWidth(), ResUtil.getTextWidth(group.getName(), 14))); + mBinding.group.getLayoutParams().width = live.getWidth() + ResUtil.dp2px(live.hasLogo() ? 90 : 45); } private void setPosition(int[] position) { diff --git a/app/src/mobile/res/layout/activity_live.xml b/app/src/mobile/res/layout/activity_live.xml index 38efdae53..f28ef55e7 100644 --- a/app/src/mobile/res/layout/activity_live.xml +++ b/app/src/mobile/res/layout/activity_live.xml @@ -62,7 +62,7 @@