PresenceTemplate.java

 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}