]> git.ktnx.net Git - mobile-ledger.git/commitdiff
LedgerAccount: override hashCode() and equals() to enable proper location in collections
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 24 Mar 2019 09:40:56 +0000 (11:40 +0200)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Mon, 25 Mar 2019 06:17:36 +0000 (06:17 +0000)
app/src/main/java/net/ktnx/mobileledger/model/LedgerAccount.java

index f632bba94311d97485e6f98584776c9176095bd6..c2ad2c2f63f460e5988fcfed3509b24134e72de1 100644 (file)
@@ -23,6 +23,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 public class LedgerAccount {
     static Pattern reHigherAccount = Pattern.compile("^[^:]+:");
@@ -48,6 +49,17 @@ public class LedgerAccount {
         this.amounts = new ArrayList<LedgerAmount>();
         this.addAmount(amount);
     }
+    @Override
+    public int hashCode() {
+        return name.hashCode();
+    }
+    @Override
+    public boolean equals(@Nullable Object obj) {
+        if (obj == null) return false;
+
+        return obj.getClass().equals(this.getClass()) &&
+               name.equals(((LedgerAccount) obj).getName());
+    }
     // an account is visible if:
     //  - it is starred (not hidden by a star)
     //  - and it has an expanded parent or is a top account