From 155427646e15f352068ea6418f90a54bf598f2c0 Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Wed, 18 Jun 2008 19:16:27 +0000 Subject: [PATCH] Remove message listener when not used any more. --- .../impl/gui/main/chat/MetaContactChatPanel.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/MetaContactChatPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/MetaContactChatPanel.java index 27a981c89..9c4f813b7 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/MetaContactChatPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/MetaContactChatPanel.java @@ -58,8 +58,6 @@ public class MetaContactChatPanel * new ImageIcon(ImageLoader.getImage(ImageLoader.SEND_SMS_ICON)) */ - private SmsMessageListener smsListener = new SmsMessageListener(); - private ProtocolContactSelectorBox contactSelectorBox; /** @@ -876,7 +874,7 @@ private void sendSmsMessage(String text) return; } - smsOpSet.addMessageListener(smsListener); + smsOpSet.addMessageListener(new SmsMessageListener(smsOpSet)); // Otherwise we create the message. Message message = smsOpSet.createMessage(text); @@ -968,6 +966,13 @@ public void setSmsSelected(boolean isSmsSelected) private class SmsMessageListener implements MessageListener { + private OperationSetSmsMessaging smsOpSet; + + public SmsMessageListener(OperationSetSmsMessaging smsOpSet) + { + this.smsOpSet = smsOpSet; + } + public void messageDelivered(MessageDeliveredEvent evt) { Message msg = evt.getSourceMessage(); @@ -985,6 +990,8 @@ public void messageDelivered(MessageDeliveredEvent evt) Constants.ACTION_MESSAGE, Messages.getI18NString("smsSuccessfullySent") .getText(), "text"); + + smsOpSet.removeMessageListener(this); } public void messageDeliveryFailed(MessageDeliveryFailedEvent evt) @@ -1039,6 +1046,8 @@ else if (evt.getErrorCode() Constants.ERROR_MESSAGE, errorMsg, "text"); + + smsOpSet.removeMessageListener(this); } public void messageReceived(MessageReceivedEvent evt)