Adium

Changeset 25628

Show
Ignore:
Timestamp:
11/25/2008 04:55:01 PM (1 month ago)
Author:
catfish_man
Message:

Another step towards contacts in multiple groups

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Frameworks/Adium Framework/Source/AIAbstractAccount.m

    r25445 r25628  
    12521252         */ 
    12531253        for (AIListContact *listContact in myContacts) { 
    1254                 [listContact setRemoteGroupName:nil]; 
     1254                for (NSString *groupName in listContact.remoteGroupNames) 
     1255                        [listContact removeRemoteGroupName:groupName]; 
    12551256                [self removePropetyValuesFromContact:listContact silently:YES]; 
    12561257        } 
  • trunk/Frameworks/Adium Framework/Source/AIListContact.h

    r25627 r25628  
    3131- (id)initWithUID:(NSString *)inUID account:(AIAccount *)inAccount service:(AIService *)inService; 
    3232- (id)initWithUID:(NSString *)inUID service:(AIService *)inService; 
    33 @property (readwrite, nonatomic, retain) NSString *remoteGroupName; 
     33@property (readonly, nonatomic, retain) NSString *remoteGroupName; 
    3434@property (readonly, nonatomic) NSSet *remoteGroupNames; 
     35- (void) addRemoteGroupName:(NSString *)name; 
     36- (void) removeRemoteGroupName:(NSString *)name; 
    3537 
    3638- (void)setUID:(NSString *)inUID; 
  • trunk/Frameworks/Adium Framework/Source/AIListContact.m

    r25627 r25628  
    4141#define CONTACT_SIGN_ON_OR_OFF_PERSISTENCE_DELAY 15 
    4242 
     43@interface AIListContact () 
     44@property (readwrite, nonatomic, retain) NSString *remoteGroupName; 
     45@end 
     46 
    4347@implementation AIListContact 
    4448 
     
    132136                } 
    133137        } 
     138} 
     139 
     140- (void) addRemoteGroupName:(NSString *)name 
     141{ 
     142        //XXX multiple containers 
     143        [self setRemoteGroupName:name]; 
     144} 
     145 
     146- (void) removeRemoteGroupName:(NSString *)name 
     147{ 
     148        //XXX multiple containers 
     149        [self setRemoteGroupName:nil]; 
    134150} 
    135151 
  • trunk/Plugins/Bonjour/AWBonjourAccount.m

    r25618 r25628  
    197197        if ([contact status] == AWEzvUndefined) { 
    198198                AILogWithSignature(@"Warning: Received a status update for a contact with an undefined status. This shouldn't happen."); 
    199                 [listContact setRemoteGroupName:nil]; 
     199                for (NSString *groupName in listContact.remoteGroupNames) 
     200                        [listContact removeRemoteGroupName:groupName]; 
    200201                [listContact setOnline:NO notify:NotifyLater silently:silentAndDelayed]; 
    201202 
    202203        } else { 
    203204                if (![listContact remoteGroupName]) { 
    204                         [listContact setRemoteGroupName:@"Bonjour"]; 
     205                        [listContact addRemoteGroupName:@"Bonjour"]; 
    205206                } 
    206207 
     
    271272                                                                        UID:inUID]; 
    272273 
    273         [listContact setRemoteGroupName:nil]; 
     274        for (NSString *groupName in listContact.remoteGroupNames) 
     275                [listContact removeRemoteGroupName:groupName]; 
    274276        [listContact setOnline:NO notify:NotifyNow silently:silentAndDelayed]; 
    275277} 
  • trunk/Plugins/Facebook Service/AIFacebookBuddyListManager.m

    r25121 r25628  
    9999                                                                                                                  group:@"Facebook"]; 
    100100                        if (!groupName) groupName = @"Facebook"; 
    101                         [listContact setRemoteGroupName:groupName]; 
     101                        [listContact addRemoteGroupName:groupName]; 
    102102                } 
    103103 
     
    134134         
    135135        //Use the non-mapped group name locally 
    136         [listContact setRemoteGroupName:groupName]; 
     136        [listContact addRemoteGroupName:groupName]; 
    137137}        
    138138 
  • trunk/Plugins/Purple Service/CBPurpleAccount.m

    r25574 r25628  
    139139         
    140140        if (groupName && [groupName isEqualToString:@PURPLE_ORPHANS_GROUP_NAME]) { 
    141                 [theContact setRemoteGroupName:AILocalizedString(@"Orphans","Name for the orphans group")]; 
     141                [theContact addRemoteGroupName:AILocalizedString(@"Orphans","Name for the orphans group")]; 
    142142        } else if (groupName && [groupName length] != 0) { 
    143                 [theContact setRemoteGroupName:[self _mapIncomingGroupName:groupName]]; 
     143                [theContact addRemoteGroupName:[self _mapIncomingGroupName:groupName]]; 
    144144        } else { 
    145145                AILog(@"Got a nil group for %@",theContact); 
     
    539539                 
    540540                //Remove it from Adium's list 
    541                 [object setRemoteGroupName:nil]; 
     541                [object removeRemoteGroupName:groupName]; 
    542542        } 
    543543} 
     
    553553                 
    554554                //Add it to Adium's list 
    555                 [contact setRemoteGroupName:[group UID]]; //Use the non-mapped group name locally 
     555                [contact addRemoteGroupName:[group UID]]; //Use the non-mapped group name locally 
    556556        } 
    557557} 
     
    578578 
    579579                        //Use the non-mapped group name locally 
    580                         [listObject setRemoteGroupName:[group UID]]; 
     580                        [listObject addRemoteGroupName:[group UID]]; 
    581581                } 
    582582        }                
     
    593593        for (AIListContact *contact in [adium.contactController allContactsInObject:inGroup onAccount:self]) { 
    594594                //Evan: should we use groupName or newName here? 
    595                 [contact setRemoteGroupName:newName]; 
     595                [contact addRemoteGroupName:newName]; 
    596596        } 
    597597} 
  • trunk/Plugins/Stress Test/AIStressTestAccount.m

    r25469 r25628  
    4848        } 
    4949        AILog(@"Created command contact %@",commandContact); 
    50         [commandContact setRemoteGroupName:@"Command"]; 
     50        [commandContact addRemoteGroupName:@"Command"]; 
    5151        [commandContact setValue:[NSNumber numberWithBool:YES] forProperty:@"Online" notify:YES]; 
    5252 
     
    5555- (void)disconnect 
    5656{ 
    57         [commandContact setRemoteGroupName:nil]; 
     57        for (NSString *name in commandContact.remoteGroupNames) 
     58                [commandContact removeRemoteGroupName:name]; 
    5859        [commandContact setValue:nil forProperty:@"Online" notify:YES]; 
    5960        [commandContact release]; commandContact = nil; 
     
    107108                                                                                                                account:self 
    108109                                                                                                                        UID:buddyUID]; 
    109                 [contact setRemoteGroupName:[NSString stringWithFormat:@"Group %i", (int)(i/5.0)]]; 
     110                [contact addRemoteGroupName:[NSString stringWithFormat:@"Group %i", (int)(i/5.0)]]; 
    110111        } 
    111112         
  • trunk/Source/GBFireImporter.m

    r25443 r25628  
    115115                [contact setIsBlocked:YES updateList:YES]; 
    116116        if(groupName) 
    117                 [contact setRemoteGroupName:groupName]; 
     117                [contact addRemoteGroupName:groupName]; 
    118118         
    119119        return contact;