[Galago-commits] r1985 - trunk/gaim-galago/src

galago-commits at freedesktop.org galago-commits at freedesktop.org
Sat Jun 25 18:20:25 PDT 2005


Author: grim
Date: 2005-06-25 18:20:23 -0700 (Sat, 25 Jun 2005)
New Revision: 1985

Modified:
   trunk/gaim-galago/src/gaim-galago.c
Log:
syncing my changes for gaim-galago

Modified: trunk/gaim-galago/src/gaim-galago.c
===================================================================
--- trunk/gaim-galago/src/gaim-galago.c	2005-06-26 01:14:19 UTC (rev 1984)
+++ trunk/gaim-galago/src/gaim-galago.c	2005-06-26 01:20:23 UTC (rev 1985)
@@ -268,12 +268,41 @@
 					galago_service_get_id(service));
 
 #if GAIM_VERSION_CHECK(2,0,0)
-	if(!gaim_presence_is_available(gaim_buddy_get_presence(buddy))) {
-		status_type = GALAGO_STATUS_AWAY;
-		status_id = GALAGO_STATUS_ID_AWAY;
-	} else {
-		status_type = GALAGO_STATUS_AVAILABLE;
-		status_id = GALAGO_STATUS_ID_AVAILABLE;
+	{
+		GaimPresence *bpresence = NULL;
+		GaimStatus *bstatus = NULL;
+		GaimStatusType *bstatus_type = NULL;
+
+		bpresence = gaim_buddy_get_presence(buddy);
+		bstatus = gaim_presence_get_active_status(bpresence);
+		bstatus_type = gaim_status_get_type(bstatus);
+
+		switch(gaim_status_type_get_primitive(bstatus_type)) {
+			case GAIM_STATUS_ONLINE:
+			case GAIM_STATUS_AVAILABLE:
+				status_type = GALAGO_STATUS_AVAILABLE;
+				status_id = GALAGO_STATUS_ID_AVAILABLE;
+				break;
+			case GAIM_STATUS_UNAVAILABLE:
+			case GAIM_STATUS_AWAY:
+				status_type = GALAGO_STATUS_AWAY;
+				status_id = GALAGO_STATUS_ID_AWAY;
+				break;
+			case GAIM_STATUS_HIDDEN:
+				status_type = GALAGO_STATUS_HIDDEN;
+				status_id = GALAGO_STATUS_ID_HIDDEN;
+				break;
+			case GAIM_STATUS_EXTENDED_AWAY:
+				status_type = GALAGO_STATUS_EXTENDED_AWAY;
+				status_id = GALAGO_STATUS_ID_EXTENDED_AWAY;
+				break;
+			case GAIM_STATUS_UNSET:
+			case GAIM_STATUS_OFFLINE:
+			default:
+				status_type = GALAGO_STATUS_OFFLINE;
+				status_id = GALAGO_STATUS_ID_OFFLINE;
+				break;
+		}
 	}
 #else
 	if (buddy->uc & UC_UNAVAILABLE)
@@ -391,7 +420,29 @@
 	}
 }
 
+#if GAIM_VERSION_CHECK(2,0,0)
 static void
+buddy_icon_changed_cb(GaimBuddyIcon *icon, GaimBuddy *buddy,
+					  const gchar *filename, const gchar *oldfilename)
+{
+	GalagoAccount *my_gaccount, *gaccount;
+	GalagoService *service;
+
+	/* this could probably be cleaned up more, but seeing as I'm not too
+	 * familiar with galago right now...
+	 *
+ 	 * - grim
+	 */
+
+	my_gaccount = get_my_galago_account(buddy->account);
+	service = galago_account_get_service(my_gaccount);
+	gaccount = galago_service_get_account(service, buddy->name, FALSE);
+
+	update_avatar(buddy, gaccount);
+}
+#endif
+
+static void
 setup_accounts(void)
 {
 	GList *l;
@@ -490,6 +541,11 @@
 	gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-off",
 						plugin, GAIM_CALLBACK(buddy_status_changed_cb), NULL);
 
+#if GAIM_VERSION_CHECK(2,0,0)
+	gaim_signal_connect(gaim_buddy_icons_get_handle(), "buddy-icon-chaced",
+						plugin, GAIM_CALLBACK(buddy_icon_changed_cb), NULL);
+#endif
+
 	gaim_signal_connect(gaim_connections_get_handle(), "signed-on",
 						plugin, GAIM_CALLBACK(signed_on_cb), NULL);
 	gaim_signal_connect(gaim_connections_get_handle(), "signed-off",



More information about the galago-commits mailing list