| 369 | | |
|---|
| 370 | | //Only update when the serverside icon changes if there is no Adium preference overriding it |
|---|
| 371 | | if (![AIUserIcons manuallySetUserIconDataForObject:listContact]) { |
|---|
| 372 | | //Find the person |
|---|
| 373 | | ABPerson *person = [listContact addressBookPerson]; |
|---|
| 374 | | |
|---|
| 375 | | if (person && (person != [sharedAddressBook me])) { |
|---|
| 376 | | NSData *existingABImageData = [person imageData]; |
|---|
| 377 | | NSImage *existingABImage = (existingABImageData ? [[NSImage alloc] initWithData:[person imageData]] : nil); |
|---|
| 378 | | NSImage *objectUserIcon = [listContact userIcon]; |
|---|
| 379 | | NSData *objectUserIconData = nil; |
|---|
| 380 | | |
|---|
| 381 | | AILogWithSignature(@"%@ will be updated to %p if %i", person, objectUserIcon, |
|---|
| 382 | | !existingABImage || |
|---|
| 383 | | (objectUserIcon && [(objectUserIconData = [objectUserIcon PNGRepresentation]) isEqualToData:[existingABImage PNGRepresentation]])); |
|---|
| 384 | | |
|---|
| 385 | | if (!existingABImage || |
|---|
| 386 | | (objectUserIcon && [(objectUserIconData = [objectUserIcon PNGRepresentation]) isEqualToData:[existingABImage PNGRepresentation]])) { |
|---|
| | 371 | ABPerson *person = [listContact addressBookPerson]; |
|---|
| | 372 | |
|---|
| | 373 | if (person && (person != [sharedAddressBook me])) { |
|---|
| | 374 | NSData *existingABImageData = [person imageData]; |
|---|
| | 375 | NSImage *existingABImage = (existingABImageData ? [[[NSImage alloc] initWithData:[person imageData]] autorelease] : nil); |
|---|
| | 376 | NSImage *objectUserIcon = [listContact userIcon]; |
|---|
| | 377 | |
|---|
| | 378 | if (!existingABImage || objectUserIcon) { |
|---|
| | 379 | NSData *objectUserIconData = [objectUserIcon PNGRepresentation]; |
|---|
| | 380 | |
|---|
| | 381 | if (![objectUserIconData isEqualToData:[existingABImage PNGRepresentation]]) { |
|---|
| 555 | | |
|---|
| 556 | | } else if (automaticSync && ([group isEqualToString:PREF_GROUP_USERICONS]) && object) { |
|---|
| 557 | | //Set an icon to the address book |
|---|
| 558 | | ABPerson *person = [[self class] personForListObject:object]; |
|---|
| 559 | | if (person) { |
|---|
| 560 | | NSData *existingABImageData = [person imageData]; |
|---|
| 561 | | NSImage *existingABImage = (existingABImageData ? [[NSImage alloc] initWithData:[person imageData]] : nil); |
|---|
| 562 | | NSImage *objectUserIcon = [object userIcon]; |
|---|
| 563 | | NSData *objectUserIconData = nil; |
|---|
| 564 | | |
|---|
| 565 | | if (!existingABImage || |
|---|
| 566 | | (objectUserIcon && [(objectUserIconData = [objectUserIcon PNGRepresentation]) isEqualToData:[existingABImage PNGRepresentation]])) { |
|---|
| 567 | | [person setImageData:objectUserIconData]; |
|---|
| 568 | | } |
|---|
| 569 | | } |
|---|
| 570 | | } |
|---|
| | 550 | } |
|---|