package org.softeg.slartus.forpdaapi; import android.text.Html; import org.softeg.slartus.forpdacommon.Functions; import org.softeg.sqliteannotations.Column; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; /** * User: slinkin * Date: 08.06.12 * Time: 12:06 */ public class Topic implements IListItem, Serializable { /** * Параметр для перехода в топике к первому непрочитанному сообщению */ public static final CharSequence NAVIGATE_VIEW_LAST_URL = "getlasturl"; /** * Параметр для перехода в топике к первому непрочитанному сообщению */ public static final CharSequence NAVIGATE_VIEW_NEW_POST = "getnewpost"; /** * Параметр для перехода в топике к первому сообщению */ public static final CharSequence NAVIGATE_VIEW_FIRST_POST = "getfirstpost"; /** * Параметр для перехода в топике к последнему сообщению */ public static final CharSequence NAVIGATE_VIEW_LAST_POST = "getlastpost"; public static final int FLAG_EMPTY = 0; public static final int FLAG_NEW = 1; @Column(name = "_id", isPrimaryKey = true) protected String m_Id; @Column(name = "Title") private String m_Title; @Column(name = "LastMessageDate", type = "DATE") private Date m_LastMessageDate; @Column(name = "LastMessageDateStr") private String m_lastMessageDateStr = null; @Column(name = "Flag", type = "INTEGER") private int m_Flag = 0; @Column(name = "ForumId") private String m_ForumId; @Column(name = "ForumTitle") private String m_ForumTitle; @Column(name = "Description") private String m_Description; @Column(name = "LastMessageAuthor") private String m_LastMessageAuthor; private CharSequence m_SortOrder = null; public Topic() { } public Topic(String id, String title) { this(); m_Id = id; m_Title = Html.fromHtml(title).toString(); } public String getId() { return m_Id; } @Override public CharSequence getTopLeft() { return m_LastMessageAuthor; } @Override public CharSequence getTopRight() { return m_lastMessageDateStr; } @Override public CharSequence getMain() { return m_Title; } @Override public CharSequence getSubMain() { return m_Description; } @Override public int getState() { if (getIsNew()) return STATE_GREEN; return STATE_NORMAL; } @Override public void setState(int state) { switch (state) { case STATE_GREEN: setIsNew(true); break; default: setIsNew(false); break; } } @Override public CharSequence getSortOrder() { return m_SortOrder; } private boolean inProgress = false; @Override public boolean isInProgress() { return inProgress; } public void inProgress(Boolean value) { inProgress = value; } public void setId(String value) { m_Id = value; } public String getTitle() { return m_Title; } public void setTitle(String title) { setTitle(title, true); } public void setTitle(String title, Boolean fromHtml) { if (fromHtml && title != null) { m_Title = Html.fromHtml(title).toString(); } else { m_Title = title; } } public String getLastMessageAuthor() { return m_LastMessageAuthor; } public void setLastMessageAuthor(String lastMessageAuthor) { setLastMessageAuthor(lastMessageAuthor, true); } public void setLastMessageAuthor(String lastMessageAuthor, Boolean fromHtml) { if (fromHtml && lastMessageAuthor != null) { m_LastMessageAuthor = Html.fromHtml(lastMessageAuthor).toString(); } else { m_LastMessageAuthor = lastMessageAuthor; } } public CharSequence getLastMessageDateStr() { return m_lastMessageDateStr; } public Date getLastMessageDate() { return m_LastMessageDate; } public void setLastMessageDate(Date lastMessageDate) { setLastMessageDate(lastMessageDate, null); } public void setLastMessageDate(Date lastMessageDate, SimpleDateFormat parseDateTimeFormat) { this.m_LastMessageDate = lastMessageDate; if (lastMessageDate == null) { lastMessageDate = new Date(); } if (parseDateTimeFormat != null) m_lastMessageDateStr = parseDateTimeFormat.format(lastMessageDate); else m_lastMessageDateStr = Functions.getForumDateTime(lastMessageDate); } public String getDescription() { return m_Description; } public void setDescription(String description) { setDescription(description, true); } public void setDescription(String description, Boolean fromHtml) { if (fromHtml && description != null) { m_Description = Html.fromHtml(description).toString().trim(); } else { m_Description = description; } } public void setIsNew(boolean aNew) { m_Flag = aNew ? FLAG_NEW : FLAG_EMPTY; } public boolean getIsNew() { return m_Flag == FLAG_NEW; } public void setFlag(int flag) { m_Flag = flag; } public int getFlag() { return m_Flag; } public String getForumId() { return m_ForumId; } public void setForumId(String value) { m_ForumId = value; } public void setForumTitle(String forumTitle) { this.m_ForumTitle = forumTitle; } public String getForumTitle() { return m_ForumTitle; } public void setSortOrder(CharSequence sortOrder) { m_SortOrder = sortOrder; } }