diff options
Diffstat (limited to 'src/eu/siacs/conversations/entities')
-rw-r--r-- | src/eu/siacs/conversations/entities/AbstractEntity.java | 11 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Account.java | 10 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Bookmark.java | 41 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Contact.java | 11 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Conversation.java | 27 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/ListItem.java | 2 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Message.java | 158 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/MucOptions.java | 16 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Presences.java | 17 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Roster.java | 20 |
10 files changed, 214 insertions, 99 deletions
diff --git a/src/eu/siacs/conversations/entities/AbstractEntity.java b/src/eu/siacs/conversations/entities/AbstractEntity.java index 4891723e..92b8a729 100644 --- a/src/eu/siacs/conversations/entities/AbstractEntity.java +++ b/src/eu/siacs/conversations/entities/AbstractEntity.java @@ -4,19 +4,18 @@ import android.content.ContentValues; public abstract class AbstractEntity { - public static final String UUID = "uuid"; - + protected String uuid; - + public String getUuid() { return this.uuid; } - + public abstract ContentValues getContentValues(); - + public boolean equals(AbstractEntity entity) { return this.getUuid().equals(entity.getUuid()); } - + } diff --git a/src/eu/siacs/conversations/entities/Account.java b/src/eu/siacs/conversations/entities/Account.java index d31d2324..272cf379 100644 --- a/src/eu/siacs/conversations/entities/Account.java +++ b/src/eu/siacs/conversations/entities/Account.java @@ -82,11 +82,12 @@ public class Account extends AbstractEntity { public Account(String username, String server, String password) { this(java.util.UUID.randomUUID().toString(), username, server, - password, 0, null, "",null); + password, 0, null, "", null); } public Account(String uuid, String username, String server, - String password, int options, String rosterVersion, String keys, String avatar) { + String password, int options, String rosterVersion, String keys, + String avatar) { this.uuid = uuid; this.username = username; this.server = server; @@ -151,7 +152,10 @@ public class Account extends AbstractEntity { public boolean errorStatus() { int s = getStatus(); - return (s == STATUS_REGISTRATION_FAILED || s == STATUS_REGISTRATION_CONFLICT || s == STATUS_REGISTRATION_NOT_SUPPORTED || s == STATUS_SERVER_NOT_FOUND || s == STATUS_UNAUTHORIZED); + return (s == STATUS_REGISTRATION_FAILED + || s == STATUS_REGISTRATION_CONFLICT + || s == STATUS_REGISTRATION_NOT_SUPPORTED + || s == STATUS_SERVER_NOT_FOUND || s == STATUS_UNAUTHORIZED); } public boolean hasErrorStatus() { diff --git a/src/eu/siacs/conversations/entities/Bookmark.java b/src/eu/siacs/conversations/entities/Bookmark.java index 38c03410..596cbe01 100644 --- a/src/eu/siacs/conversations/entities/Bookmark.java +++ b/src/eu/siacs/conversations/entities/Bookmark.java @@ -8,30 +8,31 @@ import eu.siacs.conversations.utils.UIHelper; import eu.siacs.conversations.xml.Element; public class Bookmark implements ListItem { - + private Account account; private String jid; private String nick; private String name; private boolean autojoin; private Conversation mJoinedConversation; - + public Bookmark(Account account, String jid) { this.account = account; this.jid = jid; } public static Bookmark parse(Element element, Account account) { - Bookmark bookmark = new Bookmark(account,element.getAttribute("jid")); + Bookmark bookmark = new Bookmark(account, element.getAttribute("jid")); bookmark.setName(element.getAttribute("name")); String autojoin = element.getAttribute("autojoin"); - if (autojoin!=null && (autojoin.equals("true")||autojoin.equals("1"))) { + if (autojoin != null + && (autojoin.equals("true") || autojoin.equals("1"))) { bookmark.setAutojoin(true); } else { bookmark.setAutojoin(false); } Element nick = element.findChild("nick"); - if (nick!=null) { + if (nick != null) { bookmark.setNick(nick.getContent()); } return bookmark; @@ -40,25 +41,27 @@ public class Bookmark implements ListItem { public void setAutojoin(boolean autojoin) { this.autojoin = autojoin; } - + public void setName(String name) { this.name = name; } - + public void setNick(String nick) { this.nick = nick; } @Override public int compareTo(ListItem another) { - return this.getDisplayName().compareToIgnoreCase(another.getDisplayName()); + return this.getDisplayName().compareToIgnoreCase( + another.getDisplayName()); } @Override public String getDisplayName() { - if (this.mJoinedConversation!=null && (this.mJoinedConversation.getMucOptions().getSubject() != null)) { + if (this.mJoinedConversation != null + && (this.mJoinedConversation.getMucOptions().getSubject() != null)) { return this.mJoinedConversation.getMucOptions().getSubject(); - } else if (name!=null) { + } else if (name != null) { return name; } else { return this.jid.split("@")[0]; @@ -69,11 +72,11 @@ public class Bookmark implements ListItem { public String getJid() { return this.jid.toLowerCase(Locale.US); } - + public String getNick() { return this.nick; } - + public boolean autojoin() { return autojoin; } @@ -81,8 +84,8 @@ public class Bookmark implements ListItem { public boolean match(String needle) { return needle == null || getJid().contains(needle.toLowerCase(Locale.US)) - || getDisplayName().toLowerCase(Locale.US) - .contains(needle.toLowerCase(Locale.US)); + || getDisplayName().toLowerCase(Locale.US).contains( + needle.toLowerCase(Locale.US)); } public Account getAccount() { @@ -91,10 +94,12 @@ public class Bookmark implements ListItem { @Override public Bitmap getImage(int dpSize, Context context) { - if (this.mJoinedConversation==null) { - return UIHelper.getContactPicture(getDisplayName(), dpSize, context, false); + if (this.mJoinedConversation == null) { + return UIHelper.getContactPicture(getDisplayName(), dpSize, + context, false); } else { - return UIHelper.getContactPicture(this.mJoinedConversation, dpSize, context, false); + return UIHelper.getContactPicture(this.mJoinedConversation, dpSize, + context, false); } } @@ -105,7 +110,7 @@ public class Bookmark implements ListItem { public String getName() { return name; } - + public Element toElement() { Element element = new Element("conference"); element.setAttribute("jid", this.getJid()); diff --git a/src/eu/siacs/conversations/entities/Contact.java b/src/eu/siacs/conversations/entities/Contact.java index 5892563d..8a6fd99c 100644 --- a/src/eu/siacs/conversations/entities/Contact.java +++ b/src/eu/siacs/conversations/entities/Contact.java @@ -109,7 +109,7 @@ public class Contact implements ListItem { values.put(SYSTEMACCOUNT, systemAccount); values.put(PHOTOURI, photoUri); values.put(KEYS, keys.toString()); - values.put(AVATAR,avatar); + values.put(AVATAR, avatar); return values; } @@ -141,7 +141,7 @@ public class Contact implements ListItem { public Account getAccount() { return this.account; } - + public Presences getPresences() { return this.presences; } @@ -316,7 +316,8 @@ public class Contact implements ListItem { @Override public int compareTo(ListItem another) { - return this.getDisplayName().compareToIgnoreCase(another.getDisplayName()); + return this.getDisplayName().compareToIgnoreCase( + another.getDisplayName()); } public String getServer() { @@ -330,9 +331,9 @@ public class Contact implements ListItem { @Override public Bitmap getImage(int size, Context context) { - if (this.avatar!=null) { + if (this.avatar != null) { Bitmap bm = FileBackend.getAvatar(avatar, size, context); - if (bm==null) { + if (bm == null) { return UIHelper.getContactPicture(this, size, context, false); } else { return bm; diff --git a/src/eu/siacs/conversations/entities/Conversation.java b/src/eu/siacs/conversations/entities/Conversation.java index 439f9f22..2097b2a4 100644 --- a/src/eu/siacs/conversations/entities/Conversation.java +++ b/src/eu/siacs/conversations/entities/Conversation.java @@ -16,6 +16,7 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.graphics.Bitmap; +import android.os.SystemClock; public class Conversation extends AbstractEntity { public static final String TABLENAME = "conversations"; @@ -42,6 +43,8 @@ public class Conversation extends AbstractEntity { private int status; private long created; private int mode; + + private long mutedTill = 0; private String nextPresence; @@ -88,7 +91,8 @@ public class Conversation extends AbstractEntity { public List<Message> getMessages() { if (messages == null) { - this.messages = new CopyOnWriteArrayList<Message>(); // prevent null pointer + this.messages = new CopyOnWriteArrayList<Message>(); // prevent null + // pointer } // populate with Conversation (this) @@ -140,9 +144,8 @@ public class Conversation extends AbstractEntity { this.messages = msgs; } - public String getName(boolean useSubject) { - if ((getMode() == MODE_MULTI) && (getMucOptions().getSubject() != null) - && useSubject) { + public String getName() { + if (getMode() == MODE_MULTI && getMucOptions().getSubject() != null) { return getMucOptions().getSubject(); } else if (getMode() == MODE_MULTI && bookmark != null && bookmark.getName() != null) { @@ -287,7 +290,7 @@ public class Conversation extends AbstractEntity { public String getOtrFingerprint() { if (this.otrFingerprint == null) { try { - if (getOtrSession()== null) { + if (getOtrSession() == null) { return ""; } DSAPublicKey remotePubKey = (DSAPublicKey) getOtrSession() @@ -403,19 +406,27 @@ public class Conversation extends AbstractEntity { } public Bitmap getImage(Context context, int size) { - if (mode==MODE_SINGLE) { + if (mode == MODE_SINGLE) { return getContact().getImage(size, context); } else { return UIHelper.getContactPicture(this, size, context, false); } } - + public boolean hasDuplicateMessage(Message message) { - for(int i = this.getMessages().size() -1; i >= 0; --i) { + for (int i = this.getMessages().size() - 1; i >= 0; --i) { if (this.messages.get(i).equals(message)) { return true; } } return false; } + + public void setMutedTill(long mutedTill) { + this.mutedTill = mutedTill; + } + + public boolean isMuted() { + return SystemClock.elapsedRealtime() < this.mutedTill; + } } diff --git a/src/eu/siacs/conversations/entities/ListItem.java b/src/eu/siacs/conversations/entities/ListItem.java index c89c85d9..19089b28 100644 --- a/src/eu/siacs/conversations/entities/ListItem.java +++ b/src/eu/siacs/conversations/entities/ListItem.java @@ -5,6 +5,8 @@ import android.graphics.Bitmap; public interface ListItem extends Comparable<ListItem> { public String getDisplayName(); + public String getJid(); + public Bitmap getImage(int dpSize, Context context); } diff --git a/src/eu/siacs/conversations/entities/Message.java b/src/eu/siacs/conversations/entities/Message.java index 9dea2f8a..f36ffa90 100644 --- a/src/eu/siacs/conversations/entities/Message.java +++ b/src/eu/siacs/conversations/entities/Message.java @@ -1,5 +1,6 @@ package eu.siacs.conversations.entities; +import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.xmpp.jingle.JingleConnection; import android.content.ContentValues; @@ -7,7 +8,7 @@ import android.content.Context; import android.database.Cursor; public class Message extends AbstractEntity { - + public static final String TABLENAME = "messages"; public static final int STATUS_RECEPTION_FAILED = -3; @@ -28,7 +29,7 @@ public class Message extends AbstractEntity { public static final int ENCRYPTION_OTR = 2; public static final int ENCRYPTION_DECRYPTED = 3; public static final int ENCRYPTION_DECRYPTION_FAILED = 4; - + public static final int TYPE_TEXT = 0; public static final int TYPE_IMAGE = 1; public static final int TYPE_AUDIO = 2; @@ -58,27 +59,32 @@ public class Message extends AbstractEntity { protected String remoteMsgId = null; protected transient Conversation conversation = null; - + protected transient JingleConnection jingleConnection = null; - + private Message() { - + } public Message(Conversation conversation, String body, int encryption) { this(java.util.UUID.randomUUID().toString(), conversation.getUuid(), - conversation.getContactJid(), null, body, System.currentTimeMillis(), encryption, - Message.STATUS_UNSEND,TYPE_TEXT,null); + conversation.getContactJid(), null, body, System + .currentTimeMillis(), encryption, + Message.STATUS_UNSEND, TYPE_TEXT, null); this.conversation = conversation; } - - public Message(Conversation conversation, String counterpart, String body, int encryption, int status) { - this(java.util.UUID.randomUUID().toString(), conversation.getUuid(),counterpart, null, body, System.currentTimeMillis(), encryption,status,TYPE_TEXT,null); + + public Message(Conversation conversation, String counterpart, String body, + int encryption, int status) { + this(java.util.UUID.randomUUID().toString(), conversation.getUuid(), + counterpart, null, body, System.currentTimeMillis(), + encryption, status, TYPE_TEXT, null); this.conversation = conversation; } - - public Message(String uuid, String conversationUUid, String counterpart, String trueCounterpart, - String body, long timeSent, int encryption, int status, int type, String remoteMsgId) { + + public Message(String uuid, String conversationUUid, String counterpart, + String trueCounterpart, String body, long timeSent, int encryption, + int status, int type, String remoteMsgId) { this.uuid = uuid; this.conversationUuid = conversationUUid; this.counterpart = counterpart; @@ -97,20 +103,20 @@ public class Message extends AbstractEntity { values.put(UUID, uuid); values.put(CONVERSATION, conversationUuid); values.put(COUNTERPART, counterpart); - values.put(TRUE_COUNTERPART,trueCounterpart); + values.put(TRUE_COUNTERPART, trueCounterpart); values.put(BODY, body); values.put(TIME_SENT, timeSent); values.put(ENCRYPTION, encryption); values.put(STATUS, status); values.put(TYPE, type); - values.put(REMOTE_MSG_ID,remoteMsgId); + values.put(REMOTE_MSG_ID, remoteMsgId); return values; } public String getConversationUuid() { return conversationUuid; } - + public Conversation getConversation() { return this.conversation; } @@ -118,7 +124,7 @@ public class Message extends AbstractEntity { public String getCounterpart() { return counterpart; } - + public Contact getContact() { if (this.conversation.getMode() == Conversation.MODE_SINGLE) { return this.conversation.getContact(); @@ -127,7 +133,8 @@ public class Message extends AbstractEntity { return null; } else { Account account = this.conversation.getAccount(); - Contact contact = account.getRoster().getContact(this.trueCounterpart); + Contact contact = account.getRoster().getContact( + this.trueCounterpart); if (contact.showInRoster()) { return contact; } else { @@ -140,16 +147,16 @@ public class Message extends AbstractEntity { public String getBody() { return body; } - + public String getReadableBody(Context context) { - if ((encryption == ENCRYPTION_PGP)&&(type == TYPE_TEXT)) { - return ""+context.getText(R.string.encrypted_message_received); - } else if ((encryption == ENCRYPTION_OTR)&&(type == TYPE_IMAGE)) { - return ""+context.getText(R.string.encrypted_image_received); + if ((encryption == ENCRYPTION_PGP) && (type == TYPE_TEXT)) { + return context.getText(R.string.encrypted_message_received).toString(); + } else if ((encryption == ENCRYPTION_OTR) && (type == TYPE_IMAGE)) { + return context.getText(R.string.encrypted_image_received).toString(); } else if (encryption == ENCRYPTION_DECRYPTION_FAILED) { - return ""+context.getText(R.string.decryption_failed); + return context.getText(R.string.decryption_failed).toString(); } else if (type == TYPE_IMAGE) { - return ""+context.getText(R.string.image_file); + return context.getText(R.string.image_file).toString(); } else { return body.trim(); } @@ -166,11 +173,11 @@ public class Message extends AbstractEntity { public int getStatus() { return status; } - + public String getRemoteMsgId() { return this.remoteMsgId; } - + public void setRemoteMsgId(String id) { this.remoteMsgId = id; } @@ -199,11 +206,11 @@ public class Message extends AbstractEntity { public boolean isRead() { return this.read; } - + public void markRead() { this.read = true; } - + public void markUnread() { this.read = false; } @@ -223,7 +230,7 @@ public class Message extends AbstractEntity { public String getEncryptedBody() { return this.encryptedBody; } - + public void setEncryptedBody(String body) { this.encryptedBody = body; } @@ -231,7 +238,7 @@ public class Message extends AbstractEntity { public void setType(int type) { this.type = type; } - + public int getType() { return this.type; } @@ -243,11 +250,11 @@ public class Message extends AbstractEntity { this.counterpart = this.counterpart.split("/")[0] + "/" + presence; } } - + public void setTrueCounterpart(String trueCounterpart) { this.trueCounterpart = trueCounterpart; } - + public String getPresence() { String[] counterparts = this.counterpart.split("/"); if (counterparts.length == 2) { @@ -256,15 +263,15 @@ public class Message extends AbstractEntity { return null; } } - + public void setJingleConnection(JingleConnection connection) { this.jingleConnection = connection; } - + public JingleConnection getJingleConnection() { return this.jingleConnection; } - + public static Message createStatusMessage(Conversation conversation) { Message message = new Message(); message.setType(Message.TYPE_STATUS); @@ -275,12 +282,85 @@ public class Message extends AbstractEntity { public void setCounterpart(String counterpart) { this.counterpart = counterpart; } - + public boolean equals(Message message) { - if ((this.remoteMsgId!=null) && (this.body != null) && (this.counterpart != null)) { - return this.remoteMsgId.equals(message.getRemoteMsgId()) && this.body.equals(message.getBody()) && this.counterpart.equals(message.getCounterpart()); + if ((this.remoteMsgId != null) && (this.body != null) + && (this.counterpart != null)) { + return this.remoteMsgId.equals(message.getRemoteMsgId()) + && this.body.equals(message.getBody()) + && this.counterpart.equals(message.getCounterpart()); } else { return false; } } + + public Message next() { + int index = this.conversation.getMessages().indexOf(this); + if (index < 0 || index >= this.conversation.getMessages().size() - 1) { + return null; + } else { + return this.conversation.getMessages().get(index + 1); + } + } + + public Message prev() { + int index = this.conversation.getMessages().indexOf(this); + if (index <= 0 || index > this.conversation.getMessages().size()) { + return null; + } else { + return this.conversation.getMessages().get(index - 1); + } + } + + public boolean mergable(Message message) { + if (message == null) { + return false; + } + return (message.getType() == Message.TYPE_TEXT + && message.getEncryption() != Message.ENCRYPTION_PGP + && this.getType() == message.getType() + && this.getEncryption() == message.getEncryption() + && this.getCounterpart().equals(message.getCounterpart()) + && (message.getTimeSent() - this.getTimeSent()) <= (Config.MESSAGE_MERGE_WINDOW * 1000) && ((this + .getStatus() == message.getStatus()) || ((this.getStatus() == Message.STATUS_SEND || this + .getStatus() == Message.STATUS_SEND_RECEIVED) && (message + .getStatus() == Message.STATUS_UNSEND + || message.getStatus() == Message.STATUS_SEND || message + .getStatus() == Message.STATUS_SEND_DISPLAYED)))); + } + + public String getMergedBody() { + Message next = this.next(); + if (this.mergable(next)) { + return body.trim() + '\n' + next.getMergedBody(); + } + return body.trim(); + } + + public int getMergedStatus() { + Message next = this.next(); + if (this.mergable(next)) { + return next.getMergedStatus(); + } else { + return getStatus(); + } + } + + public long getMergedTimeSent() { + Message next = this.next(); + if (this.mergable(next)) { + return next.getMergedTimeSent(); + } else { + return getTimeSent(); + } + } + + public boolean wasMergedIntoPrevious() { + Message prev = this.prev(); + if (prev == null) { + return false; + } else { + return prev.mergable(this); + } + } } diff --git a/src/eu/siacs/conversations/entities/MucOptions.java b/src/eu/siacs/conversations/entities/MucOptions.java index 61b2732d..72fbeeab 100644 --- a/src/eu/siacs/conversations/entities/MucOptions.java +++ b/src/eu/siacs/conversations/entities/MucOptions.java @@ -14,6 +14,7 @@ public class MucOptions { public static final int ERROR_NO_ERROR = 0; public static final int ERROR_NICK_IN_USE = 1; public static final int ERROR_ROOM_NOT_FOUND = 2; + public static final int ERROR_PASSWORD_REQUIRED = 3; public interface OnRenameListener { public void onRename(boolean success); @@ -106,6 +107,7 @@ public class MucOptions { private User self = new User(); private String subject = null; private String joinnick; + private String password = null; public MucOptions(Account account) { this.account = account; @@ -186,6 +188,8 @@ public class MucOptions { } else { this.error = ERROR_NICK_IN_USE; } + } else if (error.hasChild("not-authorized")) { + this.error = ERROR_PASSWORD_REQUIRED; } } } @@ -299,13 +303,21 @@ public class MucOptions { return this.conversation.getContactJid().split("/")[0] + "/" + this.joinnick; } - + public String getTrueCounterpart(String counterpart) { - for(User user : this.getUsers()) { + for (User user : this.getUsers()) { if (user.getName().equals(counterpart)) { return user.getJid(); } } return null; } + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + this.password = password; + } }
\ No newline at end of file diff --git a/src/eu/siacs/conversations/entities/Presences.java b/src/eu/siacs/conversations/entities/Presences.java index acd80735..b5899847 100644 --- a/src/eu/siacs/conversations/entities/Presences.java +++ b/src/eu/siacs/conversations/entities/Presences.java @@ -14,7 +14,7 @@ public class Presences { public static final int XA = 2; public static final int DND = 3; public static final int OFFLINE = 4; - + private Hashtable<String, Integer> presences = new Hashtable<String, Integer>(); public Hashtable<String, Integer> getPresences() { @@ -28,23 +28,24 @@ public class Presences { public void removePresence(String resource) { this.presences.remove(resource); } - + public void clearPresences() { this.presences.clear(); } - + public int getMostAvailableStatus() { int status = OFFLINE; Iterator<Entry<String, Integer>> it = presences.entrySet().iterator(); while (it.hasNext()) { Entry<String, Integer> entry = it.next(); - if (entry.getValue()<status) status = entry.getValue(); + if (entry.getValue() < status) + status = entry.getValue(); } return status; } public static int parseShow(Element show) { - if ((show == null)||(show.getContent() == null)) { + if ((show == null) || (show.getContent() == null)) { return Presences.ONLINE; } else if (show.getContent().equals("away")) { return Presences.AWAY; @@ -53,16 +54,16 @@ public class Presences { } else if (show.getContent().equals("chat")) { return Presences.CHAT; } else if (show.getContent().equals("dnd")) { - return Presences.DND; + return Presences.DND; } else { return Presences.OFFLINE; } } - + public int size() { return presences.size(); } - + public String[] asStringArray() { final String[] presencesArray = new String[presences.size()]; presences.keySet().toArray(presencesArray); diff --git a/src/eu/siacs/conversations/entities/Roster.java b/src/eu/siacs/conversations/entities/Roster.java index aa328664..c6212f77 100644 --- a/src/eu/siacs/conversations/entities/Roster.java +++ b/src/eu/siacs/conversations/entities/Roster.java @@ -9,16 +9,16 @@ public class Roster { Account account; ConcurrentHashMap<String, Contact> contacts = new ConcurrentHashMap<String, Contact>(); private String version = null; - + public Roster(Account account) { this.account = account; } - + public boolean hasContact(String jid) { String cleanJid = jid.split("/")[0]; return contacts.containsKey(cleanJid); } - + public Contact getContact(String jid) { String cleanJid = jid.split("/")[0].toLowerCase(Locale.getDefault()); if (contacts.containsKey(cleanJid)) { @@ -32,19 +32,19 @@ public class Roster { } public void clearPresences() { - for(Contact contact : getContacts()) { + for (Contact contact : getContacts()) { contact.clearPresences(); } } - + public void markAllAsNotInRoster() { - for(Contact contact : getContacts()) { + for (Contact contact : getContacts()) { contact.resetOption(Contact.Options.IN_ROSTER); } } - + public void clearSystemAccounts() { - for(Contact contact : getContacts()) { + for (Contact contact : getContacts()) { contact.setPhotoUri(null); contact.setSystemName(null); contact.setSystemAccount(null); @@ -58,13 +58,13 @@ public class Roster { public void initContact(Contact contact) { contact.setAccount(account); contact.setOption(Contact.Options.IN_ROSTER); - contacts.put(contact.getJid(),contact); + contacts.put(contact.getJid(), contact); } public void setVersion(String version) { this.version = version; } - + public String getVersion() { return this.version; } |