Updates display names in recent chats if contact is renamed.

fix-message-formatting
Damian Minkov 12 years ago
parent d48739c1a5
commit 153fa46f2e

@ -1634,6 +1634,7 @@ private void handleProviderAdded(ProtocolProviderService provider)
.addContactPresenceStatusListener(messageSourceService);
opSetPresence
.addProviderPresenceStatusListener(messageSourceService);
opSetPresence.addSubscriptionListener(messageSourceService);
}
if(messageSourceService != null)
@ -1699,6 +1700,7 @@ private void handleProviderRemoved(ProtocolProviderService provider)
.removeContactPresenceStatusListener(messageSourceService);
opSetPresence
.removeProviderPresenceStatusListener(messageSourceService);
opSetPresence.removeSubscriptionListener(messageSourceService);
}
if(messageSourceService != null)

@ -509,6 +509,15 @@ public Date getTimestamp()
return timestamp;
}
/**
* Changes display name.
* @param displayName
*/
public void setDisplayName(String displayName)
{
this.displayName = displayName;
}
/**
* Compares two MessageSourceContacts.
* @param o the object to compare with

@ -34,6 +34,7 @@ public class MessageSourceService
implements ContactSourceService,
ContactPresenceStatusListener,
ProviderPresenceStatusListener,
SubscriptionListener,
LocalUserChatRoomPresenceListener,
MessageListener,
ChatRoomMessageListener,
@ -1048,6 +1049,58 @@ public void messageDelivered(AdHocChatRoomMessageDeliveredEvent evt)
public void messageDeliveryFailed(AdHocChatRoomMessageDeliveryFailedEvent evt)
{}
@Override
public void subscriptionCreated(SubscriptionEvent evt)
{}
@Override
public void subscriptionFailed(SubscriptionEvent evt)
{}
@Override
public void subscriptionRemoved(SubscriptionEvent evt)
{}
@Override
public void subscriptionMoved(SubscriptionMovedEvent evt)
{}
@Override
public void subscriptionResolved(SubscriptionEvent evt)
{}
/**
* If a contact is renamed update the locally stored message if any.
*
* @param evt the <tt>ContactPropertyChangeEvent</tt> containing the source
*/
@Override
public void contactModified(ContactPropertyChangeEvent evt)
{
if(!evt.getPropertyName()
.equals(ContactPropertyChangeEvent.PROPERTY_DISPLAY_NAME))
return;
Contact contact = evt.getSourceContact();
if(contact == null)
return;
for(MessageSourceContact msc : recentMessages)
{
if(contact.equals(msc.getContact()))
{
msc.setDisplayName(contact.getDisplayName());
if(recentQuery != null)
recentQuery.fireContactChanged(msc);
return;
}
}
}
/**
* The contact query implementation.
*/

Loading…
Cancel
Save