adium/adium

7ce0fc2c6fc3
Parents a97833ab0faf
Children d9a50d62b417
Add a "Refresh" option to re-negotiate OTR encrypted chats when needed.
--- a/Plugins/Secure Messaging/ESSecureMessagingPlugin.h Wed Apr 23 20:48:33 2014 +0200
+++ b/Plugins/Secure Messaging/ESSecureMessagingPlugin.h Mon May 05 18:41:39 2014 +0200
@@ -26,7 +26,8 @@
AISecureMessagingMenu_ShowAbout,
AISecureMessagingMenu_VerifyManually,
AISecureMessagingMenu_VerifyQuestion,
- AISecureMessagingMenu_VerifySharedSecret
+ AISecureMessagingMenu_VerifySharedSecret,
+ AISecureMessagingMenu_Refresh
} AISecureMessagingMenuTag;
@interface ESSecureMessagingPlugin : AIPlugin <AIChatObserver> {
--- a/Plugins/Secure Messaging/ESSecureMessagingPlugin.m Wed Apr 23 20:48:33 2014 +0200
+++ b/Plugins/Secure Messaging/ESSecureMessagingPlugin.m Mon May 05 18:41:39 2014 +0200
@@ -38,6 +38,7 @@
#define TITLE_MAKE_SECURE AILocalizedString(@"Initiate Encrypted OTR Chat",nil)
#define TITLE_MAKE_INSECURE AILocalizedString(@"Cancel Encrypted Chat",nil)
+#define TITLE_REFRESH_SECURE AILocalizedString(@"Refresh Encrypted Chat",nil)
#define TITLE_SHOW_DETAILS [AILocalizedString(@"Show Details",nil) stringByAppendingEllipsis]
#define TITLE_VERIFY AILocalizedString(@"Verify",nil)
#define TITLE_VERIFY_MANUALLY [AILocalizedString(@"Manually",nil) stringByAppendingEllipsis]
@@ -368,6 +369,14 @@
inChat:chat];
}
+- (IBAction)refreshSecureMessaging:(id)sender
+{
+ AIChat *chat = adium.interfaceController.activeChat;
+
+ [chat.account requestSecureMessaging:TRUE
+ inChat:chat];
+}
+
- (IBAction)showDetails:(id)sender
{
NSRunInformationalAlertPanel(AILocalizedString(@"Details",nil),
@@ -497,6 +506,7 @@
return YES;
break;
+ case AISecureMessagingMenu_Refresh:
case AISecureMessagingMenu_ShowDetails:
case AISecureMessagingMenu_VerifyManually:
case AISecureMessagingMenu_VerifyQuestion:
@@ -534,6 +544,13 @@
[item setTag:AISecureMessagingMenu_Toggle];
[_secureMessagingMenu addItem:item];
+ item = [[[NSMenuItem alloc] initWithTitle:TITLE_REFRESH_SECURE
+ target:self
+ action:@selector(refreshSecureMessaging:)
+ keyEquivalent:@""] autorelease];
+ [item setTag:AISecureMessagingMenu_Refresh];
+ [_secureMessagingMenu addItem:item];
+
item = [[[NSMenuItem alloc] initWithTitle:TITLE_SHOW_DETAILS
target:self
action:@selector(showDetails:)
--- a/Source/AdiumOTREncryption.m Wed Apr 23 20:48:33 2014 +0200
+++ b/Source/AdiumOTREncryption.m Mon May 05 18:41:39 2014 +0200
@@ -731,7 +731,7 @@
break;
}
case OTRL_MSGEVENT_CONNECTION_ENDED: {
- NSString *localizedMessage = [NSString stringWithFormat:AILocalizedStringFromTableInBundle(@"%@ is no longer using encryption; you should cancel encryption on your side.",
+ NSString *localizedMessage = [NSString stringWithFormat:AILocalizedStringFromTableInBundle(@"Your message was not sent. %@ is no longer using encryption; you should cancel or refresh encryption on your side.",
@"libotr error message", [NSBundle bundleForClass:[AdiumOTREncryption class]],
@"Message when the remote contact cancels his half of an encrypted conversation. %@ will be a name."), listContact.UID];