SPARK-1365 some fixes for otr plugin to prevent multiple messages and disconnect/reconnect problem. updated translation

git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@12477 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Holger Bergunde
2011-06-14 09:04:12 +00:00
committed by holger.bergunde
parent 4730d783b3
commit 12935c2777
5 changed files with 47 additions and 35 deletions

View File

@ -1,7 +1,7 @@
<!-- Define your plugins -->
<plugin>
<name>OTR Plugin</name>
<version>0.2 Beta </version>
<version>0.3 Beta </version>
<author>Holger Bergunde</author>
<homePage>http://www.stytrix.de</homePage>
<email>holger@bergunde.de</email>

View File

@ -37,7 +37,9 @@ public class OTRSession {
private OTRManager _manager = OTRManager.getInstance();
final ChatRoomButton _otrButton = new ChatRoomButton();
private OTRConnectionPanel _conPanel;
private MessageEventListener _msgEvnt;
private boolean _OtrEnabled = false;
private OtrEngineListener _otrListener;
public OTRSession(ChatRoomImpl chatroom, String myJID, String remoteJID) {
_chatRoom = chatroom;
@ -54,6 +56,22 @@ public class OTRSession {
setUpMessageListener();
createButton();
//Only initialize the actionListener once
_otrButton.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (_engine.getSessionStatus(_mySession).equals(SessionStatus.ENCRYPTED)) {
stopSession();
} else {
startSession();
}
}
});
_OtrEnabled = OTRProperties.getInstance().getIsOTREnabled();
}
@ -65,11 +83,9 @@ public class OTRSession {
}
private void setUpMessageListener() {
_conPanel = new OTRConnectionPanel(_chatRoom);
_chatRoom.addMessageEventListener(new MessageEventListener() {
_chatRoom.removeMessageEventListener(_msgEvnt);
_msgEvnt = new MessageEventListener() {
@Override
public void sendingMessage(Message message) {
@ -92,7 +108,6 @@ public class OTRSession {
mesg = _engine.transformReceiving(_mySession, old);
}
if (_engine.getSessionStatus(_mySession).equals(SessionStatus.ENCRYPTED)) {
message.setBody(mesg);
} else {
if (old.length() > 3 && old.substring(0, 4).equals("?OTR")) {
@ -112,8 +127,8 @@ public class OTRSession {
}
}
});
};
_chatRoom.addMessageEventListener(_msgEvnt);
}
private void createButton() {
@ -124,28 +139,17 @@ public class OTRSession {
ImageIcon otricon = null;
if (_engine.getSessionStatus(_mySession).equals(SessionStatus.ENCRYPTED)) {
otricon = new ImageIcon(cl.getResource("otr_on.png"));
_chatRoom.getTranscriptWindow().insertNotificationMessage("From now on, your conversation is encrypted", Color.gray);
_conPanel.sucessfullyCon();
} else {
otricon = new ImageIcon(cl.getResource("otr_off.png"));
}
_otrButton.setIcon(otricon);
_otrButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (_engine.getSessionStatus(_mySession).equals(SessionStatus.ENCRYPTED)) {
stopSession();
} else {
startSession();
}
}
});
_engine.removeOtrEngineListener(_otrListener);
_chatRoom.getToolBar().addChatRoomButton(_otrButton);
_engine.addOtrEngineListener(new OtrEngineListener() {
_otrListener = new OtrEngineListener() {
@Override
public void sessionStatusChanged(SessionID arg0) {
@ -180,7 +184,8 @@ public class OTRSession {
}
}
});
};
_engine.addOtrEngineListener(_otrListener);
}
}

View File

@ -72,7 +72,7 @@ public class OTRConnectionPanel {
@Override
public void run() {
if (_i != 0 && !_succesfull) {
if (_i > 0 && !_succesfull) {
_waiting = true;
_label.setText(OTRResources.getString("otr.try.to.connect.for.seconds",_i));
decI();
@ -126,16 +126,23 @@ public class OTRConnectionPanel {
private void decI() {
--_i;
}
public void setConnected(boolean con)
{
_succesfull = con;
}
public void sucessfullyCon() {
if(!_waiting)
renewPanel();
_retry.setVisible(false);
_conPanel.setVisible(true);
_succesfull = true;
_waiting = false;
_icon.setImage(SparkRes.getImageIcon(SparkRes.SMALL_CHECK).getImage());
_label.setText(OTRResources.getString("otr.successfull"));
if (!_succesfull) {
if (!_waiting)
renewPanel();
_retry.setVisible(false);
_conPanel.setVisible(true);
_succesfull = true;
_waiting = false;
_icon.setImage(SparkRes.getImageIcon(SparkRes.SMALL_CHECK).getImage());
_label.setText(OTRResources.getString("otr.successfull"));
}
}
}

View File

@ -13,8 +13,8 @@ otr.key.not.verified.title = Key not verified
otr.question.verify = Verify?
otr.key.not.verified.text = Following key is not verified!
otr.start.session.with = OTR encrypted Session with {0}
otr.not.enabled = You recieved an OTR request. You should enable OTR in preferences.
otr.chat.is.still.encrypted = This conversation is still encrypted.
#Table Columns
otr.table.jid = User's JID

View File

@ -15,7 +15,7 @@ otr.key.not.verified.text = Folgender Schl
otr.start.session.with = OTR Sitzung mit {0}
otr.not.enabled = Sie haben eine OTR Anfrage empfagen. Sie sollten OTR in den Einstellungen aktivieren.
otr.chat.is.still.encrypted = OTR Sitzung aktiv. Nachrichten werden verschl<68>sselt.
#Table Columns
otr.table.jid = Kontakt
otr.table.public.key = <EFBFBD>ffentlicher Schl<68>ssel