From 773cdbd4791ac34a56fd3fb787f552948b9b4049 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Tue, 11 Jul 2006 12:59:29 +0000 Subject: [PATCH] Nickname retreiving Added persistent data - nickname if there is no nickname add it for update --- .../impl/protocol/icq/ContactIcqImpl.java | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/src/net/java/sip/communicator/impl/protocol/icq/ContactIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/ContactIcqImpl.java index 2ee8fb3e8..9e7f1bd67 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/ContactIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/ContactIcqImpl.java @@ -4,6 +4,7 @@ import net.kano.joscar.snaccmd.*; import net.kano.joustsim.oscar.oscar.service.ssi.*; import net.java.sip.communicator.service.protocol.icqconstants.*; +import java.util.*; /** * The ICQ implementation of the service.protocol.Contact interface. @@ -20,6 +21,8 @@ public class ContactIcqImpl private boolean isPersistent = false; private boolean isResolved = false; + private String nickName = null; + /** * Creates an IcqContactImpl * @param buddy the JoustSIM object that we will be encapsulating. @@ -175,10 +178,27 @@ public PresenceStatus getPresenceStatus() */ public String getDisplayName() { - //temporarily return the uin as we don't have alias support in joust - //sim right now. - String alias = joustSimBuddy.getAlias(); - return alias == null? getUIN():alias; + if(nickName != null) + { + return nickName; + } + else + { + String alias = joustSimBuddy.getAlias(); + + // if there is no alias we put this contact + // for future update, as we may be not registered yet + if(alias == null) + ssclCallback.addContactForUpdate(this); + + nickName = alias == null ? getUIN() : alias; + return nickName; + } + } + + protected void setDisplayName(String nickname) + { + this.nickName = nickname; } /** @@ -255,7 +275,7 @@ void setResolved(boolean resolved) */ public String getPersistentData() { - return null; + return "nickname=" + getDisplayName() + ";"; } /** @@ -272,4 +292,22 @@ public boolean isResolved() return isResolved; } + public void setPersistentData(String persistentData) + { + if(persistentData == null) + { + return; + } + + StringTokenizer dataToks = new StringTokenizer(persistentData, ";"); + while(dataToks.hasMoreTokens()) + { + String data[] = dataToks.nextToken().split("="); + if(data[0].equals("nickname")) + { + // here we must inform that nick has changed + nickName = data[1]; + } + } + } }