package com.closedcircles.client.model;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.widget.Toast;
import com.closedcircles.client.R;
import com.closedcircles.client.WebConnectionManager;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public class Message {
public static final int TYPE_TEXT = 0;
public static final int TYPE_FRIEND_OUTGOING = 1;
public static final int TYPE_FRIEND_INCOMING = 2;
public static final int TYPE_FRIEND_ACCEPTED = 3;
public static final int TYPE_FRIEND_DECLINED = 4;
public static final int TYPE_FRIEND_CANCELED = 5;
public static final int TYPE_FRIEND_READ = 6;
public static final int TYPE_THREAD_READ = 9;
public static final int OPENREPLAY =4;
protected final long mId;
protected final String mName;
protected final String mFullName;
protected final long mThread;
protected final long mParent;
protected final String mParentName;
protected final String mDate;
protected boolean mRead;
protected long mFlags;
protected long mUserId;
protected long mLocalData;
protected String mMessage;
Message(long id,
String name,
String fullname,
String message,
long thread,
long parent,
String parentName,
String date,
long flags,
long userid,
long localData) {
mId = id;
mName = name;
mFullName = fullname;
mMessage = message;
mThread = thread;
mParent = parent;
mParentName = parentName;
mDate = date;
mRead = false;
mFlags = flags;
mUserId = userid;
mLocalData = localData;
}
public String getName() { return mName; }
public String getFullName() { return mFullName; }
public String getParentName() {
return mParentName;
}
public String getDate() { return mDate; }
public long getFlags() { return mFlags;}
public long getUserId() { return mUserId;}
public String getMessage() {
return mMessage;
}
public long getId() {
return mId;
}
public long getThread() {
return mThread;
}
public long getParent() {
return mParent;
}
public long getLocalData() { return mLocalData;}
public void setText(String str){mMessage=str;}
@Override
public String toString() {return mName + ": " + mMessage;}
public void doRead() {mRead = true;}
public boolean isRead() {
return mRead;
}
public static Message fromJson(JSONObject source) throws JSONException {
int thread = -1;
int parent = -1;
if (source.getInt("type") == Message.TYPE_TEXT) {
if (!source.isNull("parentId")) {
parent = source.getInt("parentId");
}
if (!source.isNull("threadId")) {
thread = source.getInt("threadId");
}
}
return new Message(source.getLong("id"),
source.getString("name"),
source.getString("fullname"),
source.getString("text"),
thread,
parent,
source.getString("parentName"),
source.getString("time"),
source.getLong("flags"),
source.getLong("userid"),
//source.getLong("localData"));
0); // skip local data currently
}
private final static String KEY_ID = "id";
private final static String KEY_NAME = "name";
private final static String KEY_FULL_NAME = "fullname";
private final static String KEY_MESSAGE = "message";
private final static String KEY_THREAD = "thread";
private final static String KEY_PARENT = "parent";
private final static String KEY_PARENT_NAME = "parentName";
private final static String KEY_DATE = "date";
private final static String KEY_FLAGS = "flags";
private final static String KEY_USERID = "userid";
private final static String KEY_LOCAL_DATA = "localData";
public void saveState(Bundle outState) {
outState.putLong(KEY_ID, mId);
outState.putString(KEY_NAME, mName);
outState.putString(KEY_FULL_NAME, mFullName);
outState.putString(KEY_MESSAGE, mMessage);
outState.putLong(KEY_THREAD, mThread);
outState.putLong(KEY_PARENT, mParent);
outState.putString(KEY_PARENT_NAME, mParentName);
outState.putString(KEY_DATE, mDate);
outState.putLong(KEY_FLAGS, mFlags);
outState.putLong(KEY_USERID, mUserId);
outState.putLong(KEY_LOCAL_DATA, mLocalData);
}
public Message(Bundle inState) {
mId = inState.getLong(KEY_ID);
mName = inState.getString(KEY_NAME);
mFullName = inState.getString(KEY_FULL_NAME);
mMessage = inState.getString(KEY_MESSAGE);
mThread = inState.getLong(KEY_THREAD);
mParent = inState.getLong(KEY_PARENT);
mParentName = inState.getString(KEY_PARENT_NAME);
mDate = inState.getString(KEY_DATE);
mFlags = inState.getLong(KEY_FLAGS);
mUserId = inState.getLong(KEY_USERID);
mLocalData = inState.getLong(KEY_LOCAL_DATA);
}
}