]> git.0d.be Git - empathy.git/commitdiff
Do not ring on incoming calls when busy
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Mon, 19 Aug 2013 11:02:46 +0000 (13:02 +0200)
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Mon, 19 Aug 2013 11:45:53 +0000 (13:45 +0200)
Signed-off-by: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=666221

src/empathy-event-manager.c

index ea9ebc6972bd115f876337416671efb5d40c13a8..fd6e659b201cb8e9597f67b94db689f3802f3723 100644 (file)
@@ -915,8 +915,19 @@ approve_call_channel (EmpathyEventManager *self,
 
   priv->ringing++;
   if (priv->ringing == 1)
-    empathy_sound_manager_start_playing (priv->sound_mgr, NULL,
-        EMPATHY_SOUND_PHONE_INCOMING, MS_BETWEEN_RING);
+    {
+      TpAccountManager *am = tp_account_manager_dup ();
+      TpConnectionPresenceType presence;
+
+      presence = tp_account_manager_get_most_available_presence (am,
+          NULL, NULL);
+
+      if (presence != TP_CONNECTION_PRESENCE_TYPE_BUSY)
+        empathy_sound_manager_start_playing (priv->sound_mgr, NULL,
+            EMPATHY_SOUND_PHONE_INCOMING, MS_BETWEEN_RING);
+
+      g_object_unref (am);
+    }
 }
 
 static void
@@ -1363,7 +1374,7 @@ empathy_event_manager_init (EmpathyEventManager *manager)
   g_ptr_array_unref (contacts);
   g_ptr_array_unref (empty);
 
-   am = tp_account_manager_dup ();
+  am = tp_account_manager_dup ();
 
   priv->approver = tp_simple_approver_new_with_am (am, "Empathy.EventManager",
       FALSE, approve_channels, manager, NULL);