aboutsummaryrefslogtreecommitdiffstats
path: root/src/de/gultsch/chat/entities/Contact.java
blob: 47549b22e82489468f05091a94f0edd9b6021369 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package de.gultsch.chat.entities;

import java.io.Serializable;

import android.content.ContentValues;
import android.database.Cursor;

public class Contact extends AbstractEntity implements Serializable {
	private static final long serialVersionUID = -4570817093119419962L;
	
	
	public static final String TABLENAME = "contacts";
	
	public static final String DISPLAYNAME = "name";
	public static final String JID = "jid";
	public static final String SUBSCRIPTION = "subscription";
	public static final String SYSTEMACCOUNT = "systemaccount";
	public static final String PHOTOURI = "photouri";
	public static final String OPENPGPKEY = "pgpkey";
	public static final String LASTONLINEPRESENCE = "presence";
	public static final String ACCOUNT = "accountUuid";
	
	protected String accountUuid;
	protected String displayName;
	protected String jid;
	protected String subscription;
	protected int systemAccount;
	protected String photoUri;
	protected String openPGPKey;
	protected long lastOnlinePresence;


	protected Account account;
	
	public Contact(Account account, String displayName, String jid, String photoUri) {
		if (account == null) {
			this.accountUuid = null;
		} else {
			this.accountUuid = account.getUuid();
		}
		this.displayName = displayName;
		this.jid = jid;
		this.photoUri = photoUri;
	}
	
	public Contact(String uuid, String account, String displayName, String jid, String subscription, String photoUri, int systemAccount, String pgpKey, long lastseen) {
		this.uuid = uuid;
		this.accountUuid = account;
		this.displayName = displayName;
		this.jid = jid;
		this.subscription = subscription;
		this.photoUri = photoUri;
		this.systemAccount = systemAccount;
		this.openPGPKey = pgpKey;
		this.lastOnlinePresence = lastseen;
	}

	public String getDisplayName() {
		return this.displayName;
	}

	public String getProfilePhoto() {
		return this.photoUri;
	}
	
	public String getJid() {
		return this.jid;
	}
	
	public boolean match(String needle) {
		return (jid.toLowerCase().contains(needle.toLowerCase()) || (displayName.toLowerCase().contains(needle.toLowerCase())));
	}

	@Override
	public ContentValues getContentValues() {
		ContentValues values = new ContentValues();
		values.put(UUID,uuid);
		values.put(ACCOUNT,accountUuid);
		values.put(DISPLAYNAME, displayName);
		values.put(JID, jid);
		values.put(SUBSCRIPTION,subscription);
		values.put(SYSTEMACCOUNT, systemAccount);
		values.put(PHOTOURI,photoUri);
		values.put(OPENPGPKEY,openPGPKey);
		values.put(LASTONLINEPRESENCE,lastOnlinePresence);
		return values;
	}
	
	public static Contact fromCursor(Cursor cursor) {
		return new Contact(cursor.getString(cursor.getColumnIndex(UUID)),
				cursor.getString(cursor.getColumnIndex(ACCOUNT)),
				cursor.getString(cursor.getColumnIndex(DISPLAYNAME)),
				cursor.getString(cursor.getColumnIndex(JID)),
				cursor.getString(cursor.getColumnIndex(SUBSCRIPTION)),
				cursor.getString(cursor.getColumnIndex(PHOTOURI)),
				cursor.getInt(cursor.getColumnIndex(SYSTEMACCOUNT)),
				cursor.getString(cursor.getColumnIndex(OPENPGPKEY)),
				cursor.getLong(cursor.getColumnIndex(LASTONLINEPRESENCE))
				);
	}

	public void setSubscription(String subscription) {
		this.subscription = subscription;
	}

	public void setSystemAccount(int account) {
		this.systemAccount = account;
	}

	public void setAccount(Account account) {
		this.account = account;
		this.accountUuid = account.getUuid();
	}

	public Account getAccount() {
		return this.account;
	}

	public void setUuid(String uuid) {
		this.uuid = uuid;
	}
}