/* This file is part of RateBeer For Android. RateBeer for Android is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. RateBeer for Android is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with RateBeer for Android. If not, see <http://www.gnu.org/licenses/>. */ package com.ratebeer.android.app.persistance; import java.util.Date; import android.os.Parcel; import android.os.Parcelable; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; @DatabaseTable(tableName = "BeerMail") public class BeerMail implements Parcelable { public static final String MESSAGEID_FIELD_NAME = "messageId"; @DatabaseField(id = true, columnName = MESSAGEID_FIELD_NAME) private Integer messageId; @DatabaseField private Integer senderId; @DatabaseField private String senderName; @DatabaseField private boolean read; @DatabaseField private boolean replied; @DatabaseField private Date sent; @DatabaseField private String subject; @DatabaseField private String body; public BeerMail() { } public BeerMail(Integer messageId, Integer senderId, String senderName, boolean read, boolean replied, Date sent, String subject, String body) { this.messageId = messageId; this.senderId = senderId; this.senderName = senderName; this.read = read; this.replied = replied; this.sent = sent; this.subject = subject; this.body = body; } public Integer getMessageId() { return messageId; } public Integer getSenderId() { return senderId; } public String getSenderName() { return senderName; } public boolean isRead() { return read; } public boolean isReplied() { return replied; } public Date getSent() { return sent; } public String getSubject() { return subject; } public String getBody() { return body; } /** * Returns a content snippet of the subject, with restricted length * @return A string with some of the mail's textual content */ public String getSomeContent(int maxLength) { if (subject.length() > maxLength) { return subject.substring(0, maxLength - 1); } return subject; } public void setIsRead(boolean messageRead) { this.read = messageRead; } public void setIsReplied(boolean messageRelied) { this.replied = messageRelied; } public void updateBody(String body) { this.body = body; } public int describeContents() { return 0; } public void writeToParcel(Parcel out, int flags) { out.writeInt(messageId); out.writeInt(senderId); out.writeString(senderName); out.writeInt(read? 1: 0); out.writeInt(replied? 1: 0); out.writeLong(sent == null? -1: sent.getTime()); out.writeString(subject); out.writeString(body); } public static final Parcelable.Creator<BeerMail> CREATOR = new Parcelable.Creator<BeerMail>() { public BeerMail createFromParcel(Parcel in) { return new BeerMail(in); } public BeerMail[] newArray(int size) { return new BeerMail[size]; } }; private BeerMail(Parcel in) { messageId = in.readInt(); senderId = in.readInt(); senderName = in.readString(); read = in.readInt() == 1; replied = in.readInt() == 1; long sentLong = in.readLong(); sent = sentLong == -1? null: new Date(sentLong); subject = in.readString(); body = in.readString(); } }