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