Fix channel width

pull/362/head
FongMi 2 years ago
parent dbc0044801
commit cbdb76b9c8
  1. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 9
      app/src/main/java/com/fongmi/android/tv/bean/Group.java
  3. 20
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  4. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  5. 4
      app/src/mobile/res/layout/activity_live.xml

@ -281,12 +281,19 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
}
private void setWidth(Live live) {
int padding = ResUtil.dp2px(48);
for (Group item : live.getGroups()) live.setWidth(Math.max(live.getWidth(), ResUtil.getTextWidth(item.getName(), 16)));
mBinding.group.getLayoutParams().width = live.getWidth() == 0 ? 0 : Math.min(live.getWidth() + ResUtil.dp2px(50), ResUtil.dp2px(180));
mBinding.channel.getLayoutParams().width = live.getLogo().isEmpty() ? ResUtil.dp2px(200) : ResUtil.dp2px(260);
mBinding.group.getLayoutParams().width = live.getWidth() == 0 ? 0 : Math.min(live.getWidth() + padding, ResUtil.dp2px(180));
mBinding.divide.setVisibility(live.getWidth() == 0 ? View.GONE : View.VISIBLE);
}
private void setWidth(Group group) {
int logo = ResUtil.dp2px(60);
int padding = ResUtil.dp2px(60);
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);
}
private void setPosition(int[] position) {
if (position[0] == -1) return;
if (mGroupAdapter.size() == 1) return;
@ -527,6 +534,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public void onItemClick(Group item) {
setWidth(item);
mChannelAdapter.setItems(item.getChannel(), null);
mBinding.channel.setSelectedPosition(Math.max(item.getPosition(), 0));
if (!item.isKeep() || ++count < 5 || mHides.isEmpty()) return;

@ -26,6 +26,7 @@ public class Group {
private boolean selected;
private int position;
private int width;
public static List<Group> arrayFrom(String str) {
Type listType = new TypeToken<List<Group>>() {}.getType();
@ -106,6 +107,14 @@ public class Group {
this.position = position;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public boolean isHidden() {
return !TextUtils.isEmpty(getPass());
}

@ -31,6 +31,7 @@ import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.api.config.LiveConfig;
import com.fongmi.android.tv.bean.Channel;
import com.fongmi.android.tv.bean.Epg;
import com.fongmi.android.tv.bean.EpgData;
import com.fongmi.android.tv.bean.Group;
import com.fongmi.android.tv.bean.Keep;
import com.fongmi.android.tv.bean.Live;
@ -304,12 +305,19 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
}
private void setWidth(Live live) {
int padding = ResUtil.dp2px(48);
for (Group item : live.getGroups()) live.setWidth(Math.max(live.getWidth(), ResUtil.getTextWidth(item.getName(), 14)));
mBinding.group.getLayoutParams().width = live.getWidth() == 0 ? 0 : Math.min(live.getWidth() + ResUtil.dp2px(44), ResUtil.dp2px(180));
mBinding.channel.getLayoutParams().width = live.getLogo().isEmpty() ? ResUtil.dp2px(200) : ResUtil.dp2px(260);
mBinding.group.getLayoutParams().width = live.getWidth() == 0 ? 0 : Math.min(live.getWidth() + padding, ResUtil.dp2px(180));
mBinding.divide.setVisibility(live.getWidth() == 0 ? View.GONE : View.VISIBLE);
}
private void setWidth(Group group) {
int logo = ResUtil.dp2px(56);
int padding = ResUtil.dp2px(52);
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 = Math.min(group.getWidth() + padding, ResUtil.getScreenWidth() / 2);
}
private void setPosition(int[] position) {
if (position[0] == -1) return;
if (mGroupAdapter.getItemCount() == 1) return;
@ -585,6 +593,7 @@ 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());
@ -639,6 +648,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
private void setInfo() {
mViewModel.getEpg(mChannel);
mChannel.loadLogo(mBinding.widget.logo);
mBinding.arrow.setVisibility(View.GONE);
mBinding.widget.name.setText(mChannel.getName());
mBinding.control.title.setText(mChannel.getName());
mBinding.widget.namePip.setText(mChannel.getName());
@ -653,9 +663,11 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
private void setEpg() {
String epg = mChannel.getData().getEpg();
List<EpgData> data = mChannel.getData().getList();
mBinding.widget.name.setMaxEms(epg.isEmpty() ? mChannel.getName().length() : 12);
mEpgDataAdapter.addAll(mChannel.getData().getList());
mBinding.arrow.setVisibility(data.isEmpty() ? View.GONE : View.VISIBLE);
mBinding.widget.play.setText(epg);
mEpgDataAdapter.addAll(data);
setMetadata();
}
@ -1139,7 +1151,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
mPlayers.release();
Source.get().stop();
PlaybackService.stop();
App.removeCallbacks(mR1, mR2, mR3);
App.removeCallbacks(mR0, mR1, mR2, mR3);
mViewModel.url.removeObserver(mObserveUrl);
mViewModel.epg.removeObserver(mObserveEpg);
}

@ -1717,7 +1717,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
Timer.get().reset();
Source.get().stop();
RefreshEvent.history();
App.removeCallbacks(mR1, mR2, mR3, mR4);
App.removeCallbacks(mR0, mR1, mR2, mR3, mR4);
mViewModel.result.removeObserver(mObserveDetail);
mViewModel.player.removeObserver(mObservePlayer);
mViewModel.search.removeObserver(mObserveSearch);

@ -94,12 +94,12 @@
android:id="@+id/arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_gravity="center_vertical"
android:layout_marginStart="-32dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:src="@drawable/ic_action_arrow"
android:visibility="gone" />
android:visibility="visible" />
</LinearLayout>
</FrameLayout>

Loading…
Cancel
Save