adium 2127:73741974b435: Provide a fallback alias for Jabber con...
commits at adium.im
commits at adium.im
Sat May 9 04:16:38 UTC 2009
details: http://hg.adium.im/adium/rev/73741974b435
revision: 2127:73741974b435
author: Zachary West <zacw at adium.im>
date: Sat May 09 00:16:18 2009 -0400
Provide a fallback alias for Jabber contacts not in the room.
This fixes the persistent-chat scrollback showing raw JIDs for participants.
diffstat:
Frameworks/Adium Framework/Source/AIAbstractAccount.h | 1 +
Frameworks/Adium Framework/Source/AIAbstractAccount.m | 13 +++++++++++++
Frameworks/Adium Framework/Source/AIChat.m | 8 +++++++-
Plugins/Purple Service/ESPurpleJabberAccount.m | 16 ++++++++++++++++
Plugins/WebKit Message View/AIPreviewChat.m | 5 +++++
5 files changed, 42 insertions(+), 1 deletions(-)
diffs (91 lines):
diff -r 0ee661f5a9b5 -r 73741974b435 Frameworks/Adium Framework/Source/AIAbstractAccount.h
--- a/Frameworks/Adium Framework/Source/AIAbstractAccount.h Fri May 08 18:28:57 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIAbstractAccount.h Sat May 09 00:16:18 2009 -0400
@@ -74,6 +74,7 @@
- (AIListContact *)contactWithUID:(NSString *)sourceUID;
- (void)removeAllContacts;
- (void)removePropertyValuesFromContact:(AIListContact *)listContact silently:(BOOL)silent;
+- (NSString *)fallbackAliasForContact:(AIListContact *)contact inChat:(AIChat *)chat;
//Connectivity
@property (readwrite, nonatomic) BOOL shouldBeOnline;
diff -r 0ee661f5a9b5 -r 73741974b435 Frameworks/Adium Framework/Source/AIAbstractAccount.m
--- a/Frameworks/Adium Framework/Source/AIAbstractAccount.m Fri May 08 18:28:57 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIAbstractAccount.m Sat May 09 00:16:18 2009 -0400
@@ -1049,6 +1049,19 @@
UID:sourceUID];
}
+/*!
+ * @brief The fallback alias for a chat participant
+ *
+ * A fallback alias for a chat participant. This returns nil if a chat-specific alias is inappropriate.
+ *
+ * @param contact the AIListContact
+ * @param chat the AIChat
+ * @return An alias for the contact in the chat, otherwise nil.
+ */
+- (NSString *)fallbackAliasForContact:(AIListContact *)contact inChat:(AIChat *)chat
+{
+ return nil;
+}
//Connectivity ---------------------------------------------------------------------------------------------------------
#pragma mark Connectivity
diff -r 0ee661f5a9b5 -r 73741974b435 Frameworks/Adium Framework/Source/AIChat.m
--- a/Frameworks/Adium Framework/Source/AIChat.m Fri May 08 18:28:57 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIChat.m Sat May 09 00:16:18 2009 -0400
@@ -321,7 +321,13 @@
*/
- (NSString *)aliasForContact:(AIListObject *)contact
{
- return [participatingContactsAliases objectForKey:contact.UID];
+ NSString *alias = [participatingContactsAliases objectForKey:contact.UID];
+
+ if (!alias) {
+ alias = [self.account fallbackAliasForContact:(AIListContact *)contact inChat:self];
+ }
+
+ return alias;
}
/*!
diff -r 0ee661f5a9b5 -r 73741974b435 Plugins/Purple Service/ESPurpleJabberAccount.m
--- a/Plugins/Purple Service/ESPurpleJabberAccount.m Fri May 08 18:28:57 2009 -0400
+++ b/Plugins/Purple Service/ESPurpleJabberAccount.m Sat May 09 00:16:18 2009 -0400
@@ -579,6 +579,22 @@
return YES;
}
+/*!
+ * @brief Return the "nickname" part of a MUC JID
+ *
+ * @param contact The AIListContact
+ * @param chat the AIChat
+ * @return The nickname for a chat participant
+ */
+- (NSString *)fallbackAliasForContact:(AIListContact *)contact inChat:(AIChat *)chat
+{
+ if (contact.isStranger && [contact.UID.lowercaseString rangeOfString:chat.name.lowercaseString].location != NSNotFound) {
+ return [contact.UID substringFromIndex:[contact.UID rangeOfString:@"/"].location + 1];
+ } else {
+ return [super fallbackAliasForContact:contact inChat:chat];
+ }
+}
+
#pragma mark Status
/*!
* @brief Return the purple status type to be used for a status
diff -r 0ee661f5a9b5 -r 73741974b435 Plugins/WebKit Message View/AIPreviewChat.m
--- a/Plugins/WebKit Message View/AIPreviewChat.m Fri May 08 18:28:57 2009 -0400
+++ b/Plugins/WebKit Message View/AIPreviewChat.m Sat May 09 00:16:18 2009 -0400
@@ -37,4 +37,9 @@
return;
}
+- (NSString *)aliasForContact:(AIListObject *)contact
+{
+ return contact.displayName;
+}
+
@end
More information about the commits
mailing list