libpurple/protocols/demo/purpledemocontacts.c

changeset 42071
a719f0f3c600
parent 41968
2fc2db360044
child 42104
08966165974c
--- a/libpurple/protocols/demo/purpledemocontacts.c	Mon Feb 20 08:33:48 2023 -0600
+++ b/libpurple/protocols/demo/purpledemocontacts.c	Mon Feb 20 09:50:04 2023 -0600
@@ -63,15 +63,20 @@
 		}
 
 		if(json_object_has_member(status_object, "idle")) {
-			gint idle_seconds = 0;
-			time_t now;
+			PurplePresence *presence = NULL;
+			GDateTime *now = NULL;
+			GDateTime *idle_since = NULL;
+			gint idle_minutes = 0;
 
-			idle_seconds = json_object_get_int_member(status_object, "idle");
-			now = time(NULL);
+			idle_minutes = json_object_get_int_member(status_object, "idle");
+			now = g_date_time_new_now_local();
+			idle_since = g_date_time_add_minutes(now, -1 * idle_minutes);
 
-			purple_protocol_got_user_idle(account,
-			                              purple_buddy_get_name(buddy), TRUE,
-			                              now - idle_seconds);
+			presence = purple_buddy_get_presence(buddy);
+			purple_presence_set_idle(presence, TRUE, idle_since);
+
+			g_date_time_unref(idle_since);
+			g_date_time_unref(now);
 		}
 	}
 }

mercurial