Conversation.java

  1package de.gultsch.chat.entities;
  2
  3import java.util.ArrayList;
  4import java.util.List;
  5
  6import android.content.ContentValues;
  7import android.database.Cursor;
  8import android.net.Uri;
  9
 10public class Conversation extends AbstractEntity {
 11
 12	private static final long serialVersionUID = -6727528868973996739L;
 13	
 14	public static final String TABLENAME = "conversations";
 15	
 16	public static final int STATUS_AVAILABLE = 0;
 17	public static final int STATUS_ARCHIVED = 1;
 18	public static final int STATUS_DELETED = 2;
 19
 20	public static final String NAME = "name";
 21	public static final String PHOTO_URI = "profilePhotoUri";
 22	public static final String ACCOUNT = "accountUuid";
 23	public static final String CONTACT = "contactJid";
 24	public static final String STATUS = "status";
 25	public static final String CREATED = "created";
 26
 27	private String name;
 28	private String profilePhotoUri;
 29	private String accountUuid;
 30	private String contactJid;
 31	private int status;
 32	private long created;
 33
 34	private transient List<Message> messages = null;
 35
 36	public Conversation(String name, Uri profilePhoto, Account account,
 37			String contactJid) {
 38		this(java.util.UUID.randomUUID().toString(), name, profilePhoto
 39				.toString(), account.getUuid(), contactJid, System
 40				.currentTimeMillis(), STATUS_AVAILABLE);
 41	}
 42
 43	public Conversation(String uuid, String name, String profilePhoto,
 44			String accountUuid, String contactJid, long created, int status) {
 45		this.uuid = uuid;
 46		this.name = name;
 47		this.profilePhotoUri = profilePhoto;
 48		this.accountUuid = accountUuid;
 49		this.contactJid = contactJid;
 50		this.created = created;
 51		this.status = status;
 52	}
 53
 54	public List<Message> getMessages() {
 55		if (messages == null) this.messages = new ArrayList<Message>(); //prevent null pointer
 56		return messages;
 57	}
 58
 59	public void setMessages(List<Message> msgs) {
 60		this.messages = msgs;
 61	}
 62
 63	public String getName() {
 64		return this.name;
 65	}
 66
 67	public String getProfilePhotoString() {
 68		return this.profilePhotoUri;
 69	}
 70
 71	public String getAccountUuid() {
 72		return this.accountUuid;
 73	}
 74
 75	public String getContactJid() {
 76		return this.contactJid;
 77	}
 78
 79	public Uri getProfilePhotoUri() {
 80		if (this.profilePhotoUri != null) {
 81			return Uri.parse(profilePhotoUri);
 82		}
 83		return null;
 84	}
 85
 86	public int getStatus() {
 87		return this.status;
 88	}
 89	
 90	public long getCreated() {
 91		return this.created;
 92	}
 93
 94	public ContentValues getContentValues() {
 95		ContentValues values = new ContentValues();
 96		values.put(UUID, uuid);
 97		values.put(NAME, name);
 98		values.put(PHOTO_URI, profilePhotoUri);
 99		values.put(ACCOUNT, accountUuid);
100		values.put(CONTACT, contactJid);
101		values.put(CREATED, created);
102		values.put(STATUS, status);
103		return values;
104	}
105
106	public static Conversation fromCursor(Cursor cursor) {
107		return new Conversation(cursor.getString(cursor.getColumnIndex(UUID)),
108				cursor.getString(cursor.getColumnIndex(NAME)),
109				cursor.getString(cursor.getColumnIndex(PHOTO_URI)),
110				cursor.getString(cursor.getColumnIndex(ACCOUNT)),
111				cursor.getString(cursor.getColumnIndex(CONTACT)),
112				cursor.getLong(cursor.getColumnIndex(CREATED)),
113				cursor.getInt(cursor.getColumnIndex(STATUS)));
114	}
115}