]> git.0d.be Git - empathy.git/commitdiff
Add empathy_account_manager_get_accounts_connected function.
authorJonny Lamb <jonnylamb@gnome.org>
Sat, 24 Oct 2009 13:47:04 +0000 (14:47 +0100)
committerJonny Lamb <jonnylamb@gnome.org>
Sat, 24 Oct 2009 13:47:04 +0000 (14:47 +0100)
Signed-off-by: Jonny Lamb <jonnylamb@gnome.org>
libempathy/empathy-utils.c
libempathy/empathy-utils.h

index dacc1d88c883b53af7a3c06c65e1b396ac5f4495..eb080c2c2ea2bf9cbd1283f22593b7b984f89986 100644 (file)
@@ -523,3 +523,37 @@ empathy_get_account_for_connection (TpConnection *connection)
 
   return account;
 }
+
+gboolean
+empathy_account_manager_get_accounts_connected (gboolean *connecting)
+{
+  TpAccountManager *manager;
+  GList *accounts, *l;
+  gboolean out_connecting = FALSE;
+  gboolean out_connected = FALSE;
+
+  manager = tp_account_manager_dup ();
+  accounts = tp_account_manager_get_valid_accounts (manager);
+
+  for (l = accounts; l != NULL; l = l->next)
+    {
+      TpConnectionStatus s = tp_account_get_connection_status (
+          TP_ACCOUNT (l->data), NULL);
+
+      if (s == TP_CONNECTION_STATUS_CONNECTING)
+        out_connecting = TRUE;
+      else if (s == TP_CONNECTION_STATUS_CONNECTED)
+        out_connected = TRUE;
+
+      if (out_connecting && out_connected)
+        break;
+    }
+
+  g_list_free (accounts);
+  g_object_unref (manager);
+
+  if (connecting != NULL)
+    *connecting = out_connecting;
+
+  return out_connected;
+}
index 13093b8a1df1256ed0fa9407ca2965b054079b98..97e5e85b7fa9fec1e0687680b0121b7dc199f69f 100644 (file)
@@ -87,6 +87,8 @@ void empathy_signal_connect_weak (gpointer instance,
 
 TpAccount * empathy_get_account_for_connection (TpConnection *connection);
 
+gboolean empathy_account_manager_get_accounts_connected (gboolean *connecting);
+
 G_END_DECLS
 
 #endif /*  __EMPATHY_UTILS_H__ */