Mercurial > pidgin
changeset 15524:2193394fd427
Yahoo mobile status
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sun, 04 Feb 2007 04:58:33 +0000 |
parents | 84b3ab83df35 |
children | 91f33cf0a3e7 |
files | libpurple/protocols/yahoo/yahoo.c libpurple/protocols/yahoo/yahoo.h |
diffstat | 2 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/yahoo.c Sun Feb 04 02:31:04 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Sun Feb 04 04:58:33 2007 +0000 @@ -176,6 +176,11 @@ gaim_prpl_got_user_idle(gaim_connection_get_account(gc), name, TRUE, f->idle); else gaim_prpl_got_user_idle(gaim_connection_get_account(gc), name, FALSE, 0); + + if (f->sms) + gaim_prpl_got_user_status(gaim_connection_get_account(gc), name, YAHOO_STATUS_TYPE_MOBILE, NULL); + else + gaim_prpl_got_user_status_deactive(gaim_connection_get_account(gc), name, YAHOO_STATUS_TYPE_MOBILE); } static void yahoo_process_status(GaimConnection *gc, struct yahoo_packet *pkt) @@ -300,8 +305,10 @@ if (strtol(pair->value, NULL, 10) == 0) { if (f) f->status = YAHOO_STATUS_OFFLINE; - if (name) + if (name) { gaim_prpl_got_user_status(account, name, "offline", NULL); + gaim_prpl_got_user_status_deactive(account, name, YAHOO_STATUS_TYPE_MOBILE); + } break; } break; @@ -2821,8 +2828,6 @@ presence = gaim_buddy_get_presence(b); if (gaim_presence_is_online(presence)) { - if (f->sms) - return "mobile"; if (yahoo_friend_get_game(f)) return "game"; if (f->protocol == 2) @@ -3473,6 +3478,9 @@ type = gaim_status_type_new(GAIM_STATUS_OFFLINE, YAHOO_STATUS_TYPE_OFFLINE, NULL, TRUE); types = g_list_append(types, type); + type = gaim_status_type_new_full(GAIM_STATUS_MOBILE, YAHOO_STATUS_TYPE_MOBILE, NULL, FALSE, FALSE, TRUE); + types = g_list_append(types, type); + return types; }
--- a/libpurple/protocols/yahoo/yahoo.h Sun Feb 04 02:31:04 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.h Sun Feb 04 04:58:33 2007 +0000 @@ -66,6 +66,7 @@ #define YAHOO_STATUS_TYPE_STEPPEDOUT "steppedout" #define YAHOO_STATUS_TYPE_AWAY "away" #define YAHOO_STATUS_TYPE_INVISIBLE "invisible" +#define YAHOO_STATUS_TYPE_MOBILE "mobile" enum yahoo_status { YAHOO_STATUS_AVAILABLE = 0,