diff --git a/app/src/main/java/com/majinnaibu/monstercards/models/Language.java b/app/src/main/java/com/majinnaibu/monstercards/models/Language.java index eaa2c45..1e72240 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/models/Language.java +++ b/app/src/main/java/com/majinnaibu/monstercards/models/Language.java @@ -1,6 +1,9 @@ package com.majinnaibu.monstercards.models; +import androidx.annotation.Nullable; + import java.util.Comparator; +import java.util.Objects; public class Language implements Comparator, Comparable { @@ -31,11 +34,41 @@ public class Language implements Comparator, Comparable { @Override public int compareTo(Language o) { - return this.getName().compareToIgnoreCase(o.getName()); + if (this.mSpeaks && !o.mSpeaks) { + return -1; + } + if (!this.mSpeaks && o.mSpeaks) { + return 1; + } + return this.mName.compareToIgnoreCase(o.mName); } @Override public int compare(Language o1, Language o2) { - return o1.getName().compareToIgnoreCase(o2.getName()); + if (o1.mSpeaks && !o2.mSpeaks) { + return -1; + } + if (!o1.mSpeaks && o2.mSpeaks) { + return 1; + } + return o1.mName.compareToIgnoreCase(o2.mName); + } + + @Override + public boolean equals(@Nullable @org.jetbrains.annotations.Nullable Object obj) { + if (obj == null) { + return false; + } + if (!(obj instanceof Language)) { + return false; + } + Language otherLanguage = (Language) obj; + if (!Objects.equals(this.mName, otherLanguage.mName)) { + return false; + } + if (this.mSpeaks != otherLanguage.mSpeaks) { + return false; + } + return true; } }