From 23763112c709a7037bd31c305c5a32a34708a3bf Mon Sep 17 00:00:00 2001 From: Danny van Heumen Date: Sat, 19 Jul 2014 23:11:17 +0200 Subject: [PATCH] Create new volatile contact for incoming private message if necessary. --- .../impl/protocol/irc/IrcStack.java | 4 +-- ...OperationSetPersistentPresenceIrcImpl.java | 28 ++++++++----------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java index ce224305b..4d6fd89c7 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java @@ -1034,8 +1034,8 @@ public void onUserNotice(UserNotice msg) OperationSetBasicInstantMessaging.HTML_MIME_TYPE, OperationSetBasicInstantMessaging.DEFAULT_MIME_ENCODING, ""); Contact from = - IrcStack.this.provider.getPersistentPresence().findContactByID( - user); + IrcStack.this.provider.getPersistentPresence() + .findOrCreateContactByID(user); IrcStack.this.provider.getBasicInstantMessaging() .fireMessageReceived(message, from); } diff --git a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java index a209bc559..1c5aad015 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java @@ -44,23 +44,9 @@ protected OperationSetPersistentPresenceIrcImpl( private ContactIrcImpl createVolatileContact(String id) { - // Check whether a volatile group already exists and if not create - // one + // Get non-persistent group for volatile contacts. ContactGroupIrcImpl volatileGroup = getNonPersistentGroup(); - if (volatileGroup == null) - { - volatileGroup = - new ContactGroupIrcImpl(this.parentProvider, this.rootGroup, - IrcActivator.getResources().getI18NString( - "service.gui.NOT_IN_CONTACT_LIST_GROUP_NAME")); - - this.rootGroup.addSubGroup(volatileGroup); - - this.fireServerStoredGroupEvent(volatileGroup, - ServerStoredGroupEvent.GROUP_CREATED_EVENT); - } - // Create volatile contact ContactIrcImpl newVolatileContact = new ContactIrcImpl(this.parentProvider, id, volatileGroup); @@ -87,7 +73,17 @@ private ContactGroupIrcImpl getNonPersistentGroup() return gr; } - return null; + ContactGroupIrcImpl volatileGroup = + new ContactGroupIrcImpl(this.parentProvider, this.rootGroup, + IrcActivator.getResources().getI18NString( + "service.gui.NOT_IN_CONTACT_LIST_GROUP_NAME")); + + this.rootGroup.addSubGroup(volatileGroup); + + this.fireServerStoredGroupEvent(volatileGroup, + ServerStoredGroupEvent.GROUP_CREATED_EVENT); + + return volatileGroup; } public ContactGroup getRootGroup()