diff --git a/app/build.gradle b/app/build.gradle index 9f144668e..dbb47fb1c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 224 - versionName "fongmi-0127#2" + versionName "fongmi-0127#3" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] 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 a075df7c0..fed1ed2e8 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 @@ -81,9 +81,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private CustomKeyDownLive mKeyDown; private LiveViewModel mViewModel; private List mHides; + private View mChannlView; + private View mGroupView; private Players mPlayers; private Channel mChannel; - private View mOldView; private Group mGroup; private Runnable mR0; private Runnable mR1; @@ -183,6 +184,12 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick if (mGroupAdapter.size() > 0) onChildSelected(child, mGroup = (Group) mGroupAdapter.get(position)); } }); + mBinding.channel.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { + @Override + public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) { + if (mChannelAdapter.size() > 0) onChildSelected(child); + } + }); } private void setRecyclerView() { @@ -301,11 +308,18 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mBinding.channel.setSelectedPosition(mGroup.getPosition()); } + private void onChildSelected(@Nullable RecyclerView.ViewHolder child) { + if (mChannlView != null) mChannlView.setSelected(false); + if (child == null) return; + mChannlView = child.itemView; + mChannlView.setSelected(true); + } + private void onChildSelected(@Nullable RecyclerView.ViewHolder child, Group group) { - if (mOldView != null) mOldView.setSelected(false); + if (mGroupView != null) mGroupView.setSelected(false); if (child == null) return; - mOldView = child.itemView; - mOldView.setSelected(true); + mGroupView = child.itemView; + mGroupView.setSelected(true); onItemClick(group); resetPass(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ChannelPresenter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ChannelPresenter.java index ea294fdf1..94e3fa2f2 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ChannelPresenter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ChannelPresenter.java @@ -36,7 +36,6 @@ public class ChannelPresenter extends Presenter { item.loadLogo(holder.binding.logo); holder.binding.name.setText(item.getName()); holder.binding.number.setText(item.getNumber()); - holder.binding.getRoot().setSelected(item.isSelected()); setOnClickListener(holder, view -> mListener.onItemClick(item)); holder.view.setOnLongClickListener(view -> mListener.onLongClick(item)); } diff --git a/app/src/mobile/res/layout/activity_live.xml b/app/src/mobile/res/layout/activity_live.xml index fa3beddd4..6ed160d7e 100644 --- a/app/src/mobile/res/layout/activity_live.xml +++ b/app/src/mobile/res/layout/activity_live.xml @@ -98,7 +98,8 @@ android:layout_marginStart="-32dp" android:background="?attr/selectableItemBackgroundBorderless" android:padding="4dp" - android:src="@drawable/ic_action_arrow" /> + android:src="@drawable/ic_action_arrow" + android:visibility="gone" />