From dd4f8ae4910a9b5f34b545efe652faef7fa15e63 Mon Sep 17 00:00:00 2001 From: Sebastien Vincent Date: Mon, 29 Nov 2010 16:36:16 +0000 Subject: [PATCH] Disable all buttons (but hold) when call is on hold. --- .../impl/gui/main/call/CallDialog.java | 39 ++++++++++++------- .../impl/gui/main/call/CallPeerAdapter.java | 6 ++- 2 files changed, 29 insertions(+), 16 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 21a7386d2..3c5851032 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 @@ -45,6 +45,11 @@ public class CallDialog PluginComponentListener, Skinnable { + /** + * Serial version UID. + */ + private static final long serialVersionUID = 0L; + /** * The logger for this class. */ @@ -515,18 +520,20 @@ else if (!isSelected && desktopSharingButton.isSelected()) } /** - * Enables all setting buttons. + * Enables or disable all setting buttons. + * + * @param enable true to enable buttons settings, false to disable */ - public void enableButtons() + public void enableButtons(boolean enable) { // Buttons would be enabled once the call has entered in state // connected. - dialButton.setEnabled(true); - conferenceButton.setEnabled(true); - holdButton.setEnabled(true); - muteButton.setEnabled(true); - recordButton.setEnabled(true); - volumeControlButton.setEnabled(true); + dialButton.setEnabled(enable); + conferenceButton.setEnabled(enable); + holdButton.setEnabled(enable); + muteButton.setEnabled(enable); + recordButton.setEnabled(enable); + volumeControlButton.setEnabled(enable); if (!isLastConference) { @@ -548,13 +555,13 @@ public void enableButtons() // enable the video button. if (videoTelephony != null && videoDevice != null) { - videoButton.setEnabled(true); + videoButton.setEnabled(enable); // If the video was already enabled (for example in the case of // direct video call) make sure the video button is selected. if (videoTelephony.isLocalVideoAllowed(call) && !videoButton.isSelected()) - setVideoButtonSelected(true); + setVideoButtonSelected(enable); } else if (videoDevice == null) videoButton.setToolTipText(GuiActivator.getResources() @@ -566,23 +573,23 @@ else if (videoDevice == null) if (desktopSharing != null) { - desktopSharingButton.setEnabled(true); + desktopSharingButton.setEnabled(enable); // If the video was already enabled (for example in the case of // direct desktop sharing call) make sure the video button is // selected. if (desktopSharing.isLocalVideoAllowed(call) && !desktopSharingButton.isSelected()) - setDesktopSharingButtonSelected(true); + setDesktopSharingButtonSelected(enable); } if (protocolProvider.getOperationSet( OperationSetAdvancedTelephony.class) != null) { - transferCallButton.setEnabled(true); + transferCallButton.setEnabled(enable); } - fullScreenButton.setEnabled(true); + fullScreenButton.setEnabled(enable); } } @@ -668,7 +675,9 @@ public void callPeerRemoved(CallPeerEvent evt) } } - public void callStateChanged(CallChangeEvent evt) {} + public void callStateChanged(CallChangeEvent evt) + { + } /** * Updates CallPeer related components to fit the new focus state. diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java b/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java index 60c83e6dc..8a8f020d7 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallPeerAdapter.java @@ -120,6 +120,7 @@ else if (newState == CallPeerState.CONNECTING_WITH_EARLY_MEDIA) } else if (newState == CallPeerState.CONNECTED) { + System.out.println("CONNECTED" + CallPeerState.isOnHold(oldState)); if (!CallPeerState.isOnHold(oldState)) { NotificationManager @@ -131,12 +132,14 @@ else if (newState == CallPeerState.CONNECTED) renderer.getCallDialog().startCallTimer(); // Enabling all buttons when the call is connected. - renderer.getCallDialog().enableButtons(); + renderer.getCallDialog().enableButtons(true); } else { renderer.setOnHold(false); renderer.getCallDialog().updateHoldButtonState(); + // Enabling all buttons when the call get back from hold + renderer.getCallDialog().enableButtons(true); } } else if (newState == CallPeerState.DISCONNECTED) @@ -152,6 +155,7 @@ else if (newState == CallPeerState.FAILED) else if (CallPeerState.isOnHold(newState)) { renderer.setOnHold(true); + renderer.getCallDialog().enableButtons(false); renderer.getCallDialog().updateHoldButtonState(); }