Fix an issue in XMPP conference call where some peers does not show conference-info update in UI.

cusax-fix
Sebastien Vincent 16 years ago
parent eabc6e401b
commit f7fcd1d035

@ -485,7 +485,7 @@ public static byte[] downloadPhoto(ILink photoLink,
}
catch(Exception e)
{
logger.info("Failed to retrieve photo of the contact", e);
logger.debug("Failed to retrieve photo of the contact", e);
}
return null;
}

@ -28,6 +28,11 @@ public class ConferenceCallPanel
extends JScrollPane
implements CallRenderer
{
/**
* Serial version UID.
*/
private static final long serialVersionUID = 0L;
/**
* The conference call.
*/
@ -250,6 +255,11 @@ private void setSingleConferenceFocusUI(boolean isSingleConferenceFocusUI)
private static class MyViewport
extends JViewport
{
/**
* Serial version UID.
*/
private static final long serialVersionUID = 0L;
/**
* Subclassers can override this to install a different
* layout manager (or <code>null</code>) in the constructor. Returns
@ -269,6 +279,11 @@ protected LayoutManager createLayoutManager()
*/
private static class MyViewportLayout extends ViewportLayout
{
/**
* Serial version UID.
*/
private static final long serialVersionUID = 0L;
// Single instance used by JViewport.
static MyViewportLayout SHARED_INSTANCE = new MyViewportLayout();
@ -339,10 +354,10 @@ else if (view instanceof Scrollable)
= Math.max(0, viewSize.height - extentSize.height);
}
/* If we haven't been advised about how the viewports size
/* If we haven't been advised about how the viewports size
* should change wrt to the viewport, i.e. if the view isn't
* an instance of Scrollable, then adjust the views size as follows.
*
*
* If the origin of the view is showing and the viewport is
* bigger than the views preferred size, then make the view
* the same size as the viewport.

@ -461,9 +461,30 @@ private void removeConferenceMemberPanel(ConferenceMember member)
if (memberPanel != null)
{
int i = 0;
this.remove(memberPanel);
conferenceMembersPanels.remove(member);
member.removePropertyChangeListener(memberPanel);
for(Map.Entry<ConferenceMember, ConferenceMemberPanel> m :
conferenceMembersPanels.entrySet())
{
GridBagConstraints constraints = new GridBagConstraints();
ConferenceMemberPanel mV = m.getValue();
this.remove(mV);
// Add again the member panel to this container
constraints.fill = GridBagConstraints.BOTH;
constraints.gridx = 0;
constraints.gridy = i;
constraints.weightx = 1;
constraints.weighty = 0;
constraints.insets = new Insets(10, 0, 0, 0);
this.add(mV, constraints);
i++;
}
}
}

@ -752,7 +752,10 @@ public void removeStreamAudioLevelListener(ReceiveStream stream)
AudioLevelEventDispatcher dispatcher =
streamAudioLevelListeners.remove(stream);
dispatcher.setAudioLevelListener(null);
if(dispatcher != null)
{
dispatcher.setAudioLevelListener(null);
}
}
}
}
@ -983,7 +986,7 @@ protected void receiveStreamChanged(
/**
* Override it here cause we won't register effects to that stream
* cause we already have one.
*
*
* @param processor the processor.
*/
@Override
@ -1103,7 +1106,7 @@ public int getLastMeasuredLocalUserAudioLevel()
*/
@Override
public void setMute(boolean mute)
{
{
if(super.isMute() == mute)
return;

@ -114,7 +114,6 @@ protected void notifyAll(Call call)
while(it.hasNext())
{
CallPeer callPeer = it.next();
System.out.print(callPeer.getAddress());
notify(callPeer);
}
version++;
@ -652,6 +651,12 @@ private void handleCoin(CoinIQ coinIQ, CallPeerJabberImpl callPeer)
if(endpoints.size() > 0)
{
EndpointPacketExtension endpoint = endpoints.get(0);
if(endpoint.getStatus() == null)
{
break;
}
endpointStatus = endpoint.getStatus().toString();
List<MediaPacketExtension> medias =

Loading…
Cancel
Save