From bdc677bc767288815b04324d0774380286652499 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Mon, 11 Aug 2014 20:43:05 +0200 Subject: [PATCH] Added equals implementation to FeedComponent fixes #488 Items of removed feed weren't properly removed from queue --- .../danoeh/antennapod/feed/FeedComponent.java | 74 +++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/src/de/danoeh/antennapod/feed/FeedComponent.java b/src/de/danoeh/antennapod/feed/FeedComponent.java index 66a2f9cc5..48b243770 100644 --- a/src/de/danoeh/antennapod/feed/FeedComponent.java +++ b/src/de/danoeh/antennapod/feed/FeedComponent.java @@ -2,43 +2,43 @@ package de.danoeh.antennapod.feed; /** * Represents every possible component of a feed - * @author daniel * + * @author daniel */ public abstract class FeedComponent { - protected long id; + protected long id; - public FeedComponent() { - super(); - } + public FeedComponent() { + super(); + } - public long getId() { - return id; - } + public long getId() { + return id; + } - public void setId(long id) { - this.id = id; - } - - /** - * Update this FeedComponent's attributes with the attributes from another - * FeedComponent. This method should only update attributes which where read from - * the feed. - */ - public void updateFromOther(FeedComponent other) { - } + public void setId(long id) { + this.id = id; + } - /** - * Compare's this FeedComponent's attribute values with another FeedComponent's - * attribute values. This method will only compare attributes which were - * read from the feed. - * - * @return true if attribute values are different, false otherwise - */ - public boolean compareWithOther(FeedComponent other) { - return false; - } + /** + * Update this FeedComponent's attributes with the attributes from another + * FeedComponent. This method should only update attributes which where read from + * the feed. + */ + public void updateFromOther(FeedComponent other) { + } + + /** + * Compare's this FeedComponent's attribute values with another FeedComponent's + * attribute values. This method will only compare attributes which were + * read from the feed. + * + * @return true if attribute values are different, false otherwise + */ + public boolean compareWithOther(FeedComponent other) { + return false; + } /** @@ -47,4 +47,20 @@ public abstract class FeedComponent { */ public abstract String getHumanReadableIdentifier(); + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + FeedComponent that = (FeedComponent) o; + + if (id != that.id) return false; + + return true; + } + + @Override + public int hashCode() { + return (int) (id ^ (id >>> 32)); + } } \ No newline at end of file