diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 9aafbf7d8..d929d2a11 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -998,7 +998,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void updateHistory(Episode item) { - mHistory.setPosition(item.equals(mHistory.getEpisode()) ? mHistory.getPosition() : C.TIME_UNSET); + mHistory.setPosition(item.matchesName(mHistory.getEpisode()) ? mHistory.getPosition() : C.TIME_UNSET); mHistory.setVodFlag(getFlag().getFlag()); mHistory.setVodRemarks(item.getName()); mHistory.setEpisodeUrl(item.getUrl()); 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 e5749e189..0f8604373 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 @@ -97,11 +97,16 @@ public class Episode implements Parcelable, Diffable { public int getScore(String name, int number) { if (getName().equalsIgnoreCase(name)) return 100; if (number != -1 && getNumber() == number) return 80; - if (number == -1 && !name.isEmpty() && getName().toLowerCase().contains(name.toLowerCase())) return 70; - if (number == -1 && !getName().isEmpty() && name.toLowerCase().contains(getName().toLowerCase())) return 60; + if (number == -1 && name.length() >= 2 && getName().toLowerCase().contains(name.toLowerCase())) return 70; + if (number == -1 && getName().length() >= 2 && name.toLowerCase().contains(getName().toLowerCase())) return 60; return 0; } + public boolean matchesName(Episode other) { + if (other == null) return false; + return getName().equalsIgnoreCase(other.getName()); + } + public Episode trans() { if (Trans.pass()) return this; this.name = Trans.s2t(name); @@ -113,12 +118,12 @@ public class Episode implements Parcelable, Diffable { public boolean equals(@Nullable Object obj) { if (this == obj) return true; if (!(obj instanceof Episode it)) return false; - return Objects.equals(getName(), it.getName()); + return Objects.equals(getName(), it.getName()) && Objects.equals(getUrl(), it.getUrl()); } @Override public int hashCode() { - return Objects.hash(getName()); + return Objects.hash(getName(), getUrl()); } @Override 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 8be2dcb1f..aff29868a 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 @@ -1082,7 +1082,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private void updateHistory(Episode item) { - mHistory.setPosition(item.equals(mHistory.getEpisode()) ? mHistory.getPosition() : C.TIME_UNSET); + mHistory.setPosition(item.matchesName(mHistory.getEpisode()) ? mHistory.getPosition() : C.TIME_UNSET); mHistory.setVodFlag(getFlag().getFlag()); mHistory.setVodRemarks(item.getName()); mHistory.setEpisodeUrl(item.getUrl());