From 5474a1af502a748fd4d75ea5c647729db1f7ce35 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 24 Oct 2022 23:32:22 +0800 Subject: [PATCH] Clean code --- .../android/tv/ui/activity/LiveActivity.java | 42 ++++++++++++++----- .../leanback/res/layout/adapter_channel.xml | 2 - app/src/leanback/res/layout/adapter_group.xml | 1 + app/src/main/res/layout/view_live_info.xml | 2 +- 4 files changed, 33 insertions(+), 14 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 9ea083e20..9d49c261e 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 @@ -87,6 +87,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override protected void initEvent() { EventBus.getDefault().register(this); + getPlayerView().setOnClickListener(view -> toggle()); mBinding.group.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { @Override 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() { int[] position = LiveConfig.get().getKeep(); mGroupAdapter.setItems(LiveConfig.get().getHome().getGroups(), null); - if (position[0] == -1) mBinding.recycler.setVisibility(View.VISIBLE); + if (position[0] == -1) showUI(); else setPosition(position); } @@ -121,6 +122,12 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick onItemClick(getChannel()); } + private void toggle() { + if (isVisible(mBinding.recycler)) hideUI(); + else showUI(); + hideInfo(); + } + @Override public void onItemClick(Group item) { mChannelAdapter.setItems(item.getChannel(), null); @@ -131,9 +138,22 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick public void onItemClick(Channel item) { getGroup().setPosition(mBinding.channel.getSelectedPosition()); LiveConfig.get().setKeep(getGroup(), item); - mBinding.recycler.setVisibility(View.GONE); - mPlayers.start(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() { @@ -190,7 +210,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onKeyLeft() { 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.line.setText(item.getLineText()); } @@ -198,16 +218,15 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onKeyRight() { 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.line.setText(item.getLineText()); } @Override public void onKeyCenter() { - mBinding.recycler.setVisibility(View.VISIBLE); - mBinding.channel.requestFocus(); hideInfo(); + showUI(); } @Override @@ -233,15 +252,16 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick break; default: if (!event.isRetry() || mPlayers.addRetry() > 1) onError(); - else mPlayers.start(getChannel()); + else getUrl(getChannel()); break; } } private void onError() { mPlayers.setRetry(0); + if (isVisible(mBinding.recycler)) return; if (getChannel().isLastLine()) onKeyDown(); - else mPlayers.start(getChannel().nextLine()); + else getUrl(getChannel().nextLine()); } @Override @@ -261,9 +281,9 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onBackPressed() { if (isVisible(mBinding.info.getRoot())) { - mBinding.info.getRoot().setVisibility(View.GONE); + hideInfo(); } else if (isVisible(mBinding.recycler)) { - mBinding.recycler.setVisibility(View.GONE); + hideUI(); } else { super.onBackPressed(); } diff --git a/app/src/leanback/res/layout/adapter_channel.xml b/app/src/leanback/res/layout/adapter_channel.xml index 18eb55f7b..1cfa2637a 100644 --- a/app/src/leanback/res/layout/adapter_channel.xml +++ b/app/src/leanback/res/layout/adapter_channel.xml @@ -37,8 +37,6 @@ android:layout_height="wrap_content" android:ellipsize="marquee" android:letterSpacing="0.05" - android:marqueeRepeatLimit="marquee_forever" - android:scrollHorizontally="true" android:singleLine="true" android:textColor="@color/white" android:textSize="16sp" diff --git a/app/src/leanback/res/layout/adapter_group.xml b/app/src/leanback/res/layout/adapter_group.xml index 5de250fad..4ac852631 100644 --- a/app/src/leanback/res/layout/adapter_group.xml +++ b/app/src/leanback/res/layout/adapter_group.xml @@ -24,6 +24,7 @@ android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:ellipsize="marquee" android:letterSpacing="0.05" android:singleLine="true" android:textColor="@color/white" diff --git a/app/src/main/res/layout/view_live_info.xml b/app/src/main/res/layout/view_live_info.xml index 5f6b32502..464652d60 100644 --- a/app/src/main/res/layout/view_live_info.xml +++ b/app/src/main/res/layout/view_live_info.xml @@ -72,7 +72,7 @@ android:letterSpacing="0.05" android:singleLine="true" android:text="@string/live_epg_empty" - android:textColor="@color/grey_50" + android:textColor="@color/grey_200" android:textSize="16sp" android:textStyle="bold" tools:text="下個節目:喜劇之王" />