package fr.ydelouis.selfoss.entity; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonSetter; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; import java.util.Arrays; import java.util.Comparator; import java.util.List; @DatabaseTable @JsonIgnoreProperties(ignoreUnknown = true) public class Source implements Parcelable { public static final Comparator<Source> COMPARATOR_UNREAD_INVERSE = new Comparator<Source>() { @Override public int compare(Source lhs, Source rhs) { int unreadCompare = - Integer.valueOf(lhs.getUnread()).compareTo(rhs.getUnread()); if (unreadCompare == 0) { return lhs.title.compareTo(rhs.getTitle()); } return unreadCompare; } }; @DatabaseField(id = true) private int id; @DatabaseField private String title; @DatabaseField private String tags; @DatabaseField private String icon; private int unread; public Source() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public List<String> getTags() { return Arrays.asList(tags.split(",")); } public void setTags(List<String> tags) { this.tags = TextUtils.join(",",tags); } @JsonSetter public void setTags(String tags) { this.tags = tags; } public String getIcon() { return icon; } public void setIcon(String icon) { if (!"false".equals(icon)) { this.icon = icon; } } public int getUnread() { return unread; } public void setUnread(int unread) { this.unread = unread; } @Override public boolean equals(Object o) { if (!(o instanceof Source)) return false; Source oSource = (Source) o; return id == oSource.getId(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(this.id); dest.writeString(this.title); dest.writeString(this.tags); dest.writeString(this.icon); dest.writeInt(this.unread); } private Source(Parcel in) { this.id = in.readInt(); this.title = in.readString(); this.tags = in.readString(); this.icon = in.readString(); this.unread = in.readInt(); } public static Parcelable.Creator<Source> CREATOR = new Parcelable.Creator<Source>() { public Source createFromParcel(Parcel source) { return new Source(source); } public Source[] newArray(int size) { return new Source[size]; } }; }