1package eu.siacs.conversations.entities;
2
3import android.content.ContentValues;
4import android.database.Cursor;
5
6
7public class PresenceTemplate extends AbstractEntity {
8
9 public static final String TABELNAME = "presence_templates";
10 public static final String LAST_USED = "last_used";
11 public static final String MESSAGE = "message";
12 public static final String STATUS = "status";
13
14 private long lastUsed = 0;
15 private String statusMessage;
16 private Presence.Status status = Presence.Status.ONLINE;
17
18 public PresenceTemplate(Presence.Status status, String statusMessage) {
19 this.status = status;
20 this.statusMessage = statusMessage;
21 this.lastUsed = System.currentTimeMillis();
22 this.uuid = java.util.UUID.randomUUID().toString();
23 }
24
25 private PresenceTemplate() {
26
27 }
28
29 @Override
30 public ContentValues getContentValues() {
31 final String show = status.toShowString();
32 ContentValues values = new ContentValues();
33 values.put(LAST_USED, lastUsed);
34 values.put(MESSAGE, statusMessage);
35 values.put(STATUS, show == null ? "" : show);
36 values.put(UUID, uuid);
37 return values;
38 }
39
40 public static PresenceTemplate fromCursor(Cursor cursor) {
41 PresenceTemplate template = new PresenceTemplate();
42 template.uuid = cursor.getString(cursor.getColumnIndex(UUID));
43 template.lastUsed = cursor.getLong(cursor.getColumnIndex(LAST_USED));
44 template.statusMessage = cursor.getString(cursor.getColumnIndex(MESSAGE));
45 template.status = Presence.Status.fromShowString(cursor.getString(cursor.getColumnIndex(STATUS)));
46 return template;
47 }
48
49 public Presence.Status getStatus() {
50 return status;
51 }
52
53 public String getStatusMessage() {
54 return statusMessage;
55 }
56
57 @Override
58 public boolean equals(Object o) {
59 if (this == o) return true;
60 if (o == null || getClass() != o.getClass()) return false;
61
62 PresenceTemplate template = (PresenceTemplate) o;
63
64 if (statusMessage != null ? !statusMessage.equals(template.statusMessage) : template.statusMessage != null)
65 return false;
66 return status == template.status;
67
68 }
69
70 @Override
71 public int hashCode() {
72 int result = statusMessage != null ? statusMessage.hashCode() : 0;
73 result = 31 * result + status.hashCode();
74 return result;
75 }
76
77 @Override
78 public String toString() {
79 return statusMessage;
80 }
81}