From 00adffb4ea3f77028705c60ab7e58ec6a135b138 Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Fri, 22 Oct 2010 17:21:06 +0000 Subject: [PATCH] Use the OperationSetDesktopSharingServer from the beginning of the call instead of first using the streaming operation set and once remote control is enabled moving to the sharing operation set, thus fixing NullPointerException in mouse coordinates parsing during a sharing. --- .../impl/gui/main/call/CallDialog.java | 2 +- .../impl/gui/main/call/CallManager.java | 8 ++++---- .../impl/gui/main/call/DesktopSharingButton.java | 4 ++-- .../gui/main/call/OneToOneCallPeerPanel.java | 7 +++++-- .../contactlist/ContactListTreeCellRenderer.java | 16 ++++++++-------- .../contactlist/MetaContactRightButtonMenu.java | 4 ++-- 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallDialog.java b/src/net/java/sip/communicator/impl/gui/main/call/CallDialog.java index 58ccdddbf..b1fc359e9 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallDialog.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallDialog.java @@ -533,7 +533,7 @@ public void enableButtons() } if (protocolProvider.getOperationSet( - OperationSetDesktopStreaming.class) != null) + OperationSetDesktopSharingServer.class) != null) { desktopSharingButton.setEnabled(true); } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java index 5a703f7fd..96faeaf36 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java @@ -12,8 +12,6 @@ import javax.swing.Timer; -import org.osgi.framework.*; - import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.customcontrols.*; import net.java.sip.communicator.impl.gui.utils.*; @@ -23,6 +21,8 @@ import net.java.sip.communicator.service.protocol.event.*; import net.java.sip.communicator.util.*; +import org.osgi.framework.*; + /** * The CallManager is the one that handles calls. It contains also * the "Call" and "Hang up" buttons panel. Here are handles incoming and @@ -953,9 +953,9 @@ public CreateDesktopSharingThread( public void run() { - OperationSetDesktopStreaming desktopSharingOpSet + OperationSetDesktopSharingServer desktopSharingOpSet = protocolProvider - .getOperationSet(OperationSetDesktopStreaming.class); + .getOperationSet(OperationSetDesktopSharingServer.class); /* * XXX If we are here and we just discover that diff --git a/src/net/java/sip/communicator/impl/gui/main/call/DesktopSharingButton.java b/src/net/java/sip/communicator/impl/gui/main/call/DesktopSharingButton.java index 926a599cd..c83287d3a 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/DesktopSharingButton.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/DesktopSharingButton.java @@ -62,9 +62,9 @@ public void buttonPressed() { if (call != null) { - OperationSetDesktopStreaming desktopOpSet + OperationSetDesktopSharingServer desktopOpSet = call.getProtocolProvider().getOperationSet( - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); // This shouldn't happen at this stage, because we disable the button // if the operation set isn't available. diff --git a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java index cb1ddf30d..b410481e3 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java @@ -1159,8 +1159,9 @@ public void printDTMFTone(char dtmfChar) * MouseWheelListener and MouseMotionListener to remote * video component. */ - private void addMouseAndKeyListeners() + public void addMouseAndKeyListeners() { + System.out.println("ADD MOUSE AND KEY LISTENERSSSSSSSSSSS===" + remoteVideo); if(remoteVideo != null) { remoteVideo.addKeyListener(mouseAndKeyListener); @@ -1175,8 +1176,9 @@ private void addMouseAndKeyListeners() * MouseWheelListener and MouseMotionListener to remote * video component. */ - private void removeMouseAndKeyListeners() + public void removeMouseAndKeyListeners() { + System.out.println("REMOVE MOUSE AND KEY LISTENERSSSSSSSSSSS=======" + remoteVideo); if(remoteVideo != null) { remoteVideo.removeKeyListener(mouseAndKeyListener); @@ -1268,6 +1270,7 @@ public MouseAndKeyListener(OperationSetDesktopSharingClient opSet) */ public void mouseMoved(MouseEvent event) { + System.out.println("MOUSE MOVED!!!!!!!!!!!!!!!!!!!!"); if(System.currentTimeMillis() > lastMouseMovedTime + 50) { desktopSharingClient.sendMouseEvent(callPeer, event, diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java index 5f6d9178a..285cb3cd5 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java @@ -647,7 +647,7 @@ private void initButtonsPanel(UIContact uiContact) UIContactDetail desktopContact = uiContact.getDefaultContactDetail( - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); if (desktopContact != null) { @@ -954,7 +954,7 @@ private void shareDesktop(TreeNode treeNode) List desktopContacts = ((ContactNode) treeNode).getContactDescriptor() .getContactDetailsForOperationSet( - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); ChooseCallAccountPopupMenu chooseAccountDialog = null; @@ -964,7 +964,7 @@ private void shareDesktop(TreeNode treeNode) ProtocolProviderService preferredProvider = detail.getPreferredProtocolProvider( - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); List providers = null; String protocolName = null; @@ -981,7 +981,7 @@ private void shareDesktop(TreeNode treeNode) { protocolName = preferredProvider.getProtocolName(); providers = CallManager.getRegisteredProviders(protocolName, - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); } } // If we don't have a preferred provider we try to obtain a @@ -989,10 +989,10 @@ private void shareDesktop(TreeNode treeNode) else { protocolName = detail.getPreferredProtocol( - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); providers = CallManager.getRegisteredProviders(protocolName, - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); } // If our call didn't succeed, try to call through one of the other @@ -1018,14 +1018,14 @@ else if (providersCount == 1) else if (providersCount > 1) chooseAccountDialog = new ChooseCallAccountPopupMenu( tree, detail.getAddress(), providers, - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); } } else if (desktopContacts.size() > 1) { chooseAccountDialog = new ChooseCallAccountPopupMenu(tree, desktopContacts, - OperationSetDesktopStreaming.class); + OperationSetDesktopSharingServer.class); } // If the choose dialog is created we're going to show it. diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java index 8a66ddefa..9654481a8 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java @@ -359,7 +359,7 @@ private void init() } if (protocolProvider.getOperationSet( - OperationSetDesktopStreaming.class) != null) + OperationSetDesktopSharingServer.class) != null) { desktopSharingMenu.add( createMenuItem( contactDisplayName, @@ -459,7 +459,7 @@ private void init() this.videoCallItem.setEnabled(false); if (metaContact.getDefaultContact( - OperationSetDesktopStreaming.class) == null) + OperationSetDesktopSharingServer.class) == null) this.desktopSharingItem.setEnabled(false); if (metaContact.getDefaultContact(