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