changeset 15528:b258250b72c9

I think this is proper mobile support for QQ. Mark, do you want to check that out?
author Sean Egan <seanegan@gmail.com>
date Sun, 04 Feb 2007 08:10:50 +0000
parents 91f33cf0a3e7
children 16845e318249
files libpurple/protocols/qq/keep_alive.c libpurple/protocols/qq/qq.c
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/qq/keep_alive.c	Sun Feb 04 04:58:39 2007 +0000
+++ b/libpurple/protocols/qq/keep_alive.c	Sun Feb 04 08:10:50 2007 +0000
@@ -164,6 +164,11 @@
 		}
 		gaim_debug(GAIM_DEBUG_INFO, "QQ", "set buddy %d to %s\n", q_bud->uid, status_id);
 		gaim_prpl_got_user_status(gc->account, name, status_id, NULL);
+
+		if (q_bud->comm_flag & QQ_COMM_FLAG_BIND_MOBILE && q_bud->status != QQ_BUDDY_OFFLINE)
+			gaim_prpl_got_user_status(gc->account, name, "mobile", NULL);
+		else
+			gaim_prpl_got_user_status_deactive(gc->account, name, "mobile");
 	} else {
 		gaim_debug(GAIM_DEBUG_ERROR, "QQ", "unknown buddy: %d\n", q_bud->uid);
 	}
--- a/libpurple/protocols/qq/qq.c	Sun Feb 04 04:58:39 2007 +0000
+++ b/libpurple/protocols/qq/qq.c	Sun Feb 04 08:10:50 2007 +0000
@@ -257,8 +257,6 @@
 	qq_buddy *q_bud = b->proto_data;
 
 	if (q_bud) {
-		if (q_bud->comm_flag & QQ_COMM_FLAG_BIND_MOBILE)
-			return "mobile";
 		if (q_bud->comm_flag & QQ_COMM_FLAG_QQ_MEMBER)
 			return "qq_member";
 		/*
@@ -292,6 +290,10 @@
 			"offline", _("QQ: Offline"), FALSE, TRUE, FALSE);
 	types = g_list_append(types, status);
 
+	status = gaim_status_type_new_full(GAIM_STATUS_MOBILE,
+			"mobile", NULL, FALSE, FALSE, TRUE);
+	types = g_list_append(types, status);
+
 	return types;
 }