package com.mcxiaoke.minicat.dao.model;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import com.mcxiaoke.minicat.controller.DataController;
/**
* @author mcxiaoke
* @version 1.3 2012.02.27
*/
public class DirectMessageModel extends BaseModel {
public static final int TYPE_CONVERSATION_LIST = 301;
public static final int TYPE_CONVERSATION = 302;
public static final int TYPE_INBOX = 303;
public static final int TYPE_OUTBOX = 304;
public static final String TAG = DirectMessageModel.class.getSimpleName();
public static final Parcelable.Creator<DirectMessageModel> CREATOR = new Parcelable.Creator<DirectMessageModel>() {
@Override
public DirectMessageModel createFromParcel(Parcel source) {
return new DirectMessageModel(source);
}
@Override
public DirectMessageModel[] newArray(int size) {
return new DirectMessageModel[size];
}
};
private String text;
private String senderId;
private String senderScreenName;
private String senderProfileImageUrl;
private String recipientId;
private String recipientScreenName;
private String recipientProfileImageUrl;
private String conversationId;
private boolean read;
private boolean incoming;
private UserModel sender = null;
private UserModel recipient = null;
public DirectMessageModel() {
}
public DirectMessageModel(Parcel in) {
readBase(in);
text = in.readString();
senderId = in.readString();
senderScreenName = in.readString();
senderProfileImageUrl = in.readString();
recipientId = in.readString();
recipientScreenName = in.readString();
recipientProfileImageUrl = in.readString();
conversationId = in.readString();
read = in.readInt() == 0 ? false : true;
incoming = in.readInt() == 0 ? false : true;
}
public static DirectMessageModel from(Cursor cursor) {
if (cursor == null) {
return null;
}
DirectMessageModel dm = new DirectMessageModel();
dm.id = DataController.parseString(cursor, IBaseColumns.ID);
dm.account = DataController.parseString(cursor,
IBaseColumns.ACCOUNT);
dm.owner = DataController.parseString(cursor,
IBaseColumns.OWNER);
dm.note = DataController.parseString(cursor, IBaseColumns.NOTE);
dm.type = DataController.parseInt(cursor, IBaseColumns.TYPE);
dm.flag = DataController.parseInt(cursor, IBaseColumns.FLAG);
dm.rawid = DataController.parseLong(cursor, IBaseColumns.RAWID);
dm.time = DataController.parseLong(cursor, IBaseColumns.TIME);
dm.text = DataController.parseString(cursor, DirectMessageColumns.TEXT);
dm.senderId = DataController.parseString(cursor,
DirectMessageColumns.SENDER_ID);
dm.senderScreenName = DataController.parseString(cursor,
DirectMessageColumns.SENDER_SCREEN_NAME);
dm.senderProfileImageUrl = DataController.parseString(cursor,
DirectMessageColumns.SENDER_PROFILE_IMAGE_URL);
dm.recipientId = DataController.parseString(cursor,
DirectMessageColumns.RECIPIENT_ID);
dm.recipientScreenName = DataController.parseString(cursor,
DirectMessageColumns.RECIPIENT_SCREEN_NAME);
dm.recipientProfileImageUrl = DataController.parseString(cursor,
DirectMessageColumns.RECIPIENT_PROFILE_IMAGE_URL);
dm.conversationId = DataController.parseString(cursor,
DirectMessageColumns.CONVERSATION_ID);
dm.read = DataController
.parseBoolean(cursor, DirectMessageColumns.READ);
dm.incoming = DataController.parseBoolean(cursor,
DirectMessageColumns.INCOMING);
return dm;
}
@Override
public ContentValues values() {
ContentValues cv = convert();
cv.put(DirectMessageColumns.TEXT, this.text);
cv.put(DirectMessageColumns.SENDER_ID, this.senderId);
cv.put(DirectMessageColumns.SENDER_SCREEN_NAME, this.senderScreenName);
cv.put(DirectMessageColumns.SENDER_PROFILE_IMAGE_URL,
this.senderProfileImageUrl);
cv.put(DirectMessageColumns.RECIPIENT_ID, this.recipientId);
cv.put(DirectMessageColumns.RECIPIENT_SCREEN_NAME,
this.recipientScreenName);
cv.put(DirectMessageColumns.RECIPIENT_PROFILE_IMAGE_URL,
this.recipientProfileImageUrl);
cv.put(DirectMessageColumns.CONVERSATION_ID, this.conversationId);
cv.put(DirectMessageColumns.READ, this.read);
cv.put(DirectMessageColumns.INCOMING, this.incoming);
return cv;
}
@Override
public Uri getContentUri() {
return DirectMessageColumns.CONTENT_URI;
}
@Override
public String getTable() {
return DirectMessageColumns.TABLE_NAME;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
writeBase(dest, flags);
dest.writeString(text);
dest.writeString(senderId);
dest.writeString(senderScreenName);
dest.writeString(senderProfileImageUrl);
dest.writeString(recipientId);
dest.writeString(recipientScreenName);
dest.writeString(recipientProfileImageUrl);
dest.writeString(conversationId);
dest.writeInt(read ? 1 : 0);
dest.writeInt(incoming ? 1 : 0);
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getSenderId() {
return senderId;
}
public void setSenderId(String senderId) {
this.senderId = senderId;
}
public String getSenderScreenName() {
return senderScreenName;
}
public void setSenderScreenName(String senderScreenName) {
this.senderScreenName = senderScreenName;
}
public String getSenderProfileImageUrl() {
return senderProfileImageUrl;
}
public void setSenderProfileImageUrl(String senderProfileImageUrl) {
this.senderProfileImageUrl = senderProfileImageUrl;
}
public String getRecipientId() {
return recipientId;
}
public void setRecipientId(String recipientId) {
this.recipientId = recipientId;
}
public String getRecipientScreenName() {
return recipientScreenName;
}
public void setRecipientScreenName(String recipientScreenName) {
this.recipientScreenName = recipientScreenName;
}
public String getRecipientProfileImageUrl() {
return recipientProfileImageUrl;
}
public void setRecipientProfileImageUrl(String recipientProfileImageUrl) {
this.recipientProfileImageUrl = recipientProfileImageUrl;
}
public String getConversationId() {
return conversationId;
}
public void setConversationId(String conversationId) {
this.conversationId = conversationId;
}
public boolean isRead() {
return read;
}
public void setRead(boolean read) {
this.read = read;
}
public boolean isIncoming() {
return incoming;
}
public void setIncoming(boolean incoming) {
this.incoming = incoming;
}
public UserModel getSender() {
return sender;
}
public void setSender(UserModel sender) {
this.sender = sender;
if (sender != null) {
this.senderProfileImageUrl = sender.getProfileImageUrlLarge();
}
}
public UserModel getRecipient() {
return recipient;
}
public void setRecipient(UserModel recipient) {
this.recipient = recipient;
if (recipient != null) {
this.recipientProfileImageUrl = recipient.getProfileImageUrlLarge();
}
}
@Override
public String toString() {
return "DirectMessageModel [ id=" + id + " text=" + text + ", senderId=" + senderId
+ ", senderScreenName=" + senderScreenName + ", recipientId="
+ recipientId + ", recipientScreenName=" + recipientScreenName
+ ", conversationId=" + conversationId + ", incoming="
+ incoming + "]";
}
}