From eb299cf82510d0972032101e683ba72db780ed05 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 6 Oct 2023 22:35:38 +0800 Subject: [PATCH] Fix bug --- .../com/fongmi/android/tv/bean/Episode.java | 18 +++++++++++++++--- app/src/main/res/color/text.xml | 1 + .../android/tv/ui/activity/VideoActivity.java | 5 ++--- .../android/tv/ui/adapter/EpisodeAdapter.java | 4 ++++ .../tv/ui/holder/EpisodeGridHolder.java | 2 +- .../tv/ui/holder/EpisodeHoriHolder.java | 2 +- 6 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Episode.java b/app/src/main/java/com/fongmi/android/tv/bean/Episode.java index 7039ce1e2..36cf226bb 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Episode.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Episode.java @@ -19,6 +19,7 @@ public class Episode implements Parcelable { private int number; private boolean activated; + private boolean selected; public static Episode create(String name, String url) { return new Episode(name, "", url); @@ -66,12 +67,21 @@ public class Episode implements Parcelable { return activated; } + public void setActivated(boolean activated) { + this.activated = activated; + this.selected = activated; + } + public void deactivated() { - this.activated = false; + setActivated(false); } - public void setActivated(boolean activated) { - this.activated = activated; + public boolean isSelected() { + return selected; + } + + public void setSelected(boolean selected) { + this.selected = selected; } public boolean rule1(String name) { @@ -114,6 +124,7 @@ public class Episode implements Parcelable { dest.writeString(this.url); dest.writeInt(this.number); dest.writeByte(this.activated ? (byte) 1 : (byte) 0); + dest.writeByte(this.selected ? (byte) 1 : (byte) 0); } protected Episode(Parcel in) { @@ -122,6 +133,7 @@ public class Episode implements Parcelable { this.url = in.readString(); this.number = in.readInt(); this.activated = in.readByte() != 0; + this.selected = in.readByte() != 0; } public static final Creator CREATOR = new Creator<>() { diff --git a/app/src/main/res/color/text.xml b/app/src/main/res/color/text.xml index 510b488f5..e0128d83c 100644 --- a/app/src/main/res/color/text.xml +++ b/app/src/main/res/color/text.xml @@ -1,6 +1,7 @@ + \ No newline at end of file diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 79700b30e..a046371f2 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -593,9 +593,8 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 1); if (episode == null || episode.isActivated()) return; if (Setting.getFlag() == 1) { - episode.setActivated(true); - mBinding.episode.scrollToPosition(mEpisodeAdapter.getPosition()); - episode.setActivated(false); + episode.setSelected(true); + mBinding.episode.scrollToPosition(mEpisodeAdapter.getPosition(episode)); } else { mHistory.setVodRemarks(episode.getName()); onItemClick(episode); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java index cf5f776f8..e870f0e0e 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java @@ -51,6 +51,10 @@ public class EpisodeAdapter extends RecyclerView.Adapter { return 0; } + public int getPosition(Episode item) { + return mItems.indexOf(item); + } + public Episode getActivated() { return mItems.get(getPosition()); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeGridHolder.java b/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeGridHolder.java index 9fe6ebbff..bc5e5403e 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeGridHolder.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeGridHolder.java @@ -20,7 +20,7 @@ public class EpisodeGridHolder extends BaseEpisodeHolder { @Override public void initView(Episode item) { - binding.text.setSelected(item.isActivated()); + binding.text.setSelected(item.isSelected()); binding.text.setActivated(item.isActivated()); binding.text.setText(item.getDesc().concat(item.getName())); binding.text.setOnClickListener(v -> listener.onItemClick(item)); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeHoriHolder.java b/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeHoriHolder.java index 30958b757..7acdfd452 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeHoriHolder.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/holder/EpisodeHoriHolder.java @@ -22,7 +22,7 @@ public class EpisodeHoriHolder extends BaseEpisodeHolder { @Override public void initView(Episode item) { binding.text.setMaxEms(Product.getEms()); - binding.text.setSelected(item.isActivated()); + binding.text.setSelected(item.isSelected()); binding.text.setActivated(item.isActivated()); binding.text.setText(item.getDesc().concat(item.getName())); binding.text.setOnClickListener(v -> listener.onItemClick(item));