Fix episode compare

fongmi
FongMi 2 weeks ago
parent 7ca13842ef
commit baddbd15be
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  2. 13
      app/src/main/java/com/fongmi/android/tv/bean/Episode.java
  3. 2
      app/src/mobile/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());

@ -97,11 +97,16 @@ public class Episode implements Parcelable, Diffable<Episode> {
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<Episode> {
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

@ -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());

Loading…
Cancel
Save