adium/adium

Updated Changes.txt for 1.5.10.4.
adium-1.5.10.4
2017-04-25, Robert Vehse
09440b7b46e0
Updated Changes.txt for 1.5.10.4.
/*
* Adium is the legal property of its developers, whose names are listed in the copyright file included
* with this source distribution.
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
* General Public License as published by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program; if not,
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "AMPurpleJabberMoodTooltip.h"
#import "ESPurpleJabberAccount.h"
#import <Adium/AIListContact.h>
#import <libpurple/blist.h>
@implementation AMPurpleJabberMoodTooltip
- (NSString *)labelForObject:(AIListObject *)inObject {
if ([inObject isKindOfClass:[AIListContact class]] &&
[[(AIListContact *)inObject account] isKindOfClass:[ESPurpleJabberAccount class]]) {
PurpleAccount *account = [(ESPurpleJabberAccount *)[(AIListContact *)inObject account] purpleAccount];
PurpleBuddy *buddy = (account ? purple_find_buddy(account, [inObject.UID UTF8String]) : nil);
PurplePresence *presence = (buddy ? purple_buddy_get_presence(buddy) : nil);
PurpleStatus *status = (presence ? purple_presence_get_active_status(presence) : nil);
PurpleValue *value = (status ? purple_status_get_attr_value(status, "mood") : nil);
if(value && (purple_value_get_type(value) == PURPLE_TYPE_STRING) && purple_value_get_string(value))
return AILocalizedString(@"Mood","user mood tooltip title");
}
return nil;
}
- (NSAttributedString *)entryForObject:(AIListObject *)inObject {
if ([inObject isKindOfClass:[AIListContact class]] &&
[[(AIListContact *)inObject account] isKindOfClass:[ESPurpleJabberAccount class]]) {
PurpleAccount *account = [(ESPurpleJabberAccount *)[(AIListContact *)inObject account] purpleAccount];
PurpleBuddy *buddy = (account ? purple_find_buddy(account, [inObject.UID UTF8String]) : nil);
PurplePresence *presence = (buddy ? purple_buddy_get_presence(buddy) : nil);
PurpleStatus *status = (presence ? purple_presence_get_active_status(presence) : nil);
PurpleValue *value = (status ? purple_status_get_attr_value(status, "mood") : nil);
if(value && (purple_value_get_type(value) == PURPLE_TYPE_STRING)) {
const char *mood = purple_value_get_string(value);
if(mood) {
NSString *str;
value = purple_status_get_attr_value(status, "moodtext");
if(value && purple_value_get_type(value) == PURPLE_TYPE_STRING && purple_value_get_string(value) && purple_value_get_string(value)[0] != '\0')
str = [NSString stringWithFormat:@"%s (%s)", mood, purple_value_get_string(value)];
else
str = [NSString stringWithUTF8String:mood];
return [[[NSAttributedString alloc] initWithString:str attributes:nil] autorelease];
}
}
}
return nil;
}
- (BOOL)shouldDisplayInContactInspector
{
return YES;
}
@end