Conversations/src/de/gultsch/chat/entities/Contact.java

123 lines
3.5 KiB
Java
Raw Normal View History

package de.gultsch.chat.entities;
2014-01-23 20:04:05 -05:00
import java.io.Serializable;
import android.content.ContentValues;
import android.database.Cursor;
2014-01-23 20:04:05 -05:00
public class Contact extends AbstractEntity implements Serializable {
2014-01-23 20:04:05 -05:00
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;
2014-01-23 20:04:05 -05:00
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;
}
2014-01-23 20:04:05 -05:00
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;
2014-01-23 20:04:05 -05:00
this.jid = jid;
this.subscription = subscription;
this.photoUri = photoUri;
this.systemAccount = systemAccount;
this.openPGPKey = pgpKey;
this.lastOnlinePresence = lastseen;
2014-01-23 20:04:05 -05:00
}
public String getDisplayName() {
return this.displayName;
2014-01-23 20:04:05 -05:00
}
public String getProfilePhoto() {
return this.photoUri;
2014-01-23 20:04:05 -05:00
}
2014-01-23 20:04:05 -05:00
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))
);
2014-01-23 20:04:05 -05:00
}
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;
}
2014-01-23 20:04:05 -05:00
}