pull/123/head
FongMi 3 years ago
parent 1cbaffc776
commit 5474a1af50
  1. 42
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 2
      app/src/leanback/res/layout/adapter_channel.xml
  3. 1
      app/src/leanback/res/layout/adapter_group.xml
  4. 2
      app/src/main/res/layout/view_live_info.xml

@ -87,6 +87,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override @Override
protected void initEvent() { protected void initEvent() {
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
getPlayerView().setOnClickListener(view -> toggle());
mBinding.group.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { mBinding.group.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@Override @Override
public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) { public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) {
@ -109,7 +110,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void getLive() { private void getLive() {
int[] position = LiveConfig.get().getKeep(); int[] position = LiveConfig.get().getKeep();
mGroupAdapter.setItems(LiveConfig.get().getHome().getGroups(), null); mGroupAdapter.setItems(LiveConfig.get().getHome().getGroups(), null);
if (position[0] == -1) mBinding.recycler.setVisibility(View.VISIBLE); if (position[0] == -1) showUI();
else setPosition(position); else setPosition(position);
} }
@ -121,6 +122,12 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
onItemClick(getChannel()); onItemClick(getChannel());
} }
private void toggle() {
if (isVisible(mBinding.recycler)) hideUI();
else showUI();
hideInfo();
}
@Override @Override
public void onItemClick(Group item) { public void onItemClick(Group item) {
mChannelAdapter.setItems(item.getChannel(), null); mChannelAdapter.setItems(item.getChannel(), null);
@ -131,9 +138,22 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
public void onItemClick(Channel item) { public void onItemClick(Channel item) {
getGroup().setPosition(mBinding.channel.getSelectedPosition()); getGroup().setPosition(mBinding.channel.getSelectedPosition());
LiveConfig.get().setKeep(getGroup(), item); LiveConfig.get().setKeep(getGroup(), item);
mBinding.recycler.setVisibility(View.GONE);
mPlayers.start(item);
showInfo(item); showInfo(item);
getUrl(item);
hideUI();
}
private void getUrl(Channel item) {
mPlayers.start(item);
}
private void hideUI() {
mBinding.recycler.setVisibility(View.GONE);
}
private void showUI() {
mBinding.recycler.setVisibility(View.VISIBLE);
mBinding.channel.requestFocus();
} }
private void hideInfo() { private void hideInfo() {
@ -190,7 +210,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override @Override
public void onKeyLeft() { public void onKeyLeft() {
Channel item = getChannel().prevLine(); Channel item = getChannel().prevLine();
if (item.getUrls().size() > 1) mPlayers.start(item); if (item.getUrls().size() > 1) getUrl(item);
mBinding.info.getRoot().setVisibility(View.VISIBLE); mBinding.info.getRoot().setVisibility(View.VISIBLE);
mBinding.info.line.setText(item.getLineText()); mBinding.info.line.setText(item.getLineText());
} }
@ -198,16 +218,15 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override @Override
public void onKeyRight() { public void onKeyRight() {
Channel item = getChannel().nextLine(); Channel item = getChannel().nextLine();
if (item.getUrls().size() > 1) mPlayers.start(item); if (item.getUrls().size() > 1) getUrl(item);
mBinding.info.getRoot().setVisibility(View.VISIBLE); mBinding.info.getRoot().setVisibility(View.VISIBLE);
mBinding.info.line.setText(item.getLineText()); mBinding.info.line.setText(item.getLineText());
} }
@Override @Override
public void onKeyCenter() { public void onKeyCenter() {
mBinding.recycler.setVisibility(View.VISIBLE);
mBinding.channel.requestFocus();
hideInfo(); hideInfo();
showUI();
} }
@Override @Override
@ -233,15 +252,16 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
break; break;
default: default:
if (!event.isRetry() || mPlayers.addRetry() > 1) onError(); if (!event.isRetry() || mPlayers.addRetry() > 1) onError();
else mPlayers.start(getChannel()); else getUrl(getChannel());
break; break;
} }
} }
private void onError() { private void onError() {
mPlayers.setRetry(0); mPlayers.setRetry(0);
if (isVisible(mBinding.recycler)) return;
if (getChannel().isLastLine()) onKeyDown(); if (getChannel().isLastLine()) onKeyDown();
else mPlayers.start(getChannel().nextLine()); else getUrl(getChannel().nextLine());
} }
@Override @Override
@ -261,9 +281,9 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (isVisible(mBinding.info.getRoot())) { if (isVisible(mBinding.info.getRoot())) {
mBinding.info.getRoot().setVisibility(View.GONE); hideInfo();
} else if (isVisible(mBinding.recycler)) { } else if (isVisible(mBinding.recycler)) {
mBinding.recycler.setVisibility(View.GONE); hideUI();
} else { } else {
super.onBackPressed(); super.onBackPressed();
} }

@ -37,8 +37,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="marquee" android:ellipsize="marquee"
android:letterSpacing="0.05" android:letterSpacing="0.05"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true" android:singleLine="true"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="16sp" android:textSize="16sp"

@ -24,6 +24,7 @@
android:id="@+id/name" android:id="@+id/name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="marquee"
android:letterSpacing="0.05" android:letterSpacing="0.05"
android:singleLine="true" android:singleLine="true"
android:textColor="@color/white" android:textColor="@color/white"

@ -72,7 +72,7 @@
android:letterSpacing="0.05" android:letterSpacing="0.05"
android:singleLine="true" android:singleLine="true"
android:text="@string/live_epg_empty" android:text="@string/live_epg_empty"
android:textColor="@color/grey_50" android:textColor="@color/grey_200"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
tools:text="下個節目:喜劇之王" /> tools:text="下個節目:喜劇之王" />

Loading…
Cancel
Save