From 7194dbb55ffab646673cfae2dab7bae86c136ef6 Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Wed, 4 Apr 2012 16:07:39 +0000 Subject: [PATCH] Fixes mandatory security timer. --- .../gui/main/call/OneToOneCallPeerPanel.java | 13 +++++++++-- .../main/call/ParanoiaTimerSecurityPanel.java | 23 ++++++++++--------- 2 files changed, 23 insertions(+), 13 deletions(-) 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 2fb726784..7ff59f219 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 @@ -21,6 +21,7 @@ import net.java.sip.communicator.service.neomedia.*; import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.service.protocol.event.*; +import net.java.sip.communicator.service.protocol.media.*; import net.java.sip.communicator.service.resources.*; import net.java.sip.communicator.util.*; import net.java.sip.communicator.util.skin.*; @@ -613,7 +614,14 @@ public void setPeerState(CallPeerState peerState, String state) if(Boolean.parseBoolean(GuiActivator.getResources() .getSettingsString("impl.gui.PARANOIA_UI"))) { - securityPanel = new ParanoiaTimerSecurityPanel(); + SrtpControl srtpControl = null; + if (callPeer instanceof MediaAwareCallPeer) + srtpControl = ((MediaAwareCallPeer) callPeer) + .getMediaHandler().getStream(MediaType.AUDIO) + .getSrtpControl(); + + securityPanel + = new ParanoiaTimerSecurityPanel(srtpControl); setSecurityPanelVisible(true); } @@ -708,7 +716,8 @@ public void securityOn(CallPeerSecurityOnEvent evt) // if we have some other panel, using other control if(!srtpControl.getClass().isInstance( - securityPanel.getSecurityControl())) + securityPanel.getSecurityControl()) + || (securityPanel instanceof ParanoiaTimerSecurityPanel)) { setSecurityPanelVisible(false); diff --git a/src/net/java/sip/communicator/impl/gui/main/call/ParanoiaTimerSecurityPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/ParanoiaTimerSecurityPanel.java index 3efee4280..83523e775 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/ParanoiaTimerSecurityPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/ParanoiaTimerSecurityPanel.java @@ -21,7 +21,7 @@ * @author Damian Minkov * @author Yana Stamcheva */ -public class ParanoiaTimerSecurityPanel +public class ParanoiaTimerSecurityPanel extends SecurityPanel { /** @@ -32,9 +32,9 @@ public class ParanoiaTimerSecurityPanel /** * Creates an instance of this ParanoiaTimerSecurityPanel. */ - ParanoiaTimerSecurityPanel() + ParanoiaTimerSecurityPanel(T securityControl) { - super(null); + super(securityControl); initComponents(); } @@ -79,14 +79,12 @@ private void initComponents() if (securityControl instanceof ZrtpControl) zrtpControl = (ZrtpControl) securityControl; - int initialSeconds = 0; + long initialSeconds = 0; if (zrtpControl != null) - initialSeconds = (int) zrtpControl.getTimeoutValue()/1000; + initialSeconds = zrtpControl.getTimeoutValue(); - c.set(Calendar.HOUR, 0); - c.set(Calendar.MINUTE, 0); - c.set(Calendar.SECOND, initialSeconds); + c.setTimeInMillis(initialSeconds); counter.setText(format.format(c.getTime())); @@ -96,10 +94,13 @@ private void initComponents() @Override public void run() { - c.add(Calendar.SECOND, -1); - counter.setText(format.format(c.getTime())); + if (c.getTimeInMillis() - 1000 > 0) + { + c.add(Calendar.SECOND, -1); + counter.setText(format.format(c.getTime())); + } } - }, 0, 1000); + }, 1000, 1000); } /**