]> git.0d.be Git - empathy.git/blobdiff - src/empathy-notifications-approver.c
Merge branch 'gnome-3-8'
[empathy.git] / src / empathy-notifications-approver.c
index 7a4f03731b256a5a592c29e6c1a15ec793fb7fa1..fb36f2ac34b19d3b7e2ef6cd26211bdfe122c6f7 100644 (file)
  * Authors: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
  */
 
-#include <config.h>
-#include <string.h>
+#include "config.h"
+#include "empathy-notifications-approver.h"
 
 #include <glib/gi18n.h>
-#include <libnotify/notification.h>
-#include <libnotify/notify.h>
-#include <telepathy-glib/telepathy-glib.h>
-
-#include <libempathy/empathy-tp-streamed-media.h>
-
-#include <libempathy-gtk/empathy-notify-manager.h>
-#include <libempathy-gtk/empathy-call-utils.h>
 
+#include "empathy-call-utils.h"
 #include "empathy-event-manager.h"
+#include "empathy-notify-manager.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_OTHER
-#include <libempathy/empathy-debug.h>
-
-#include "empathy-notifications-approver.h"
+#include "empathy-debug.h"
 
 struct _EmpathyNotificationsApproverPrivate
 {
@@ -185,17 +177,13 @@ add_notification_actions (EmpathyNotificationsApprover *self,
 
   switch (self->priv->event->type) {
     case EMPATHY_EVENT_TYPE_CHAT:
+    case EMPATHY_EVENT_TYPE_MENTIONED:
       notify_notification_add_action (notification,
         "respond", _("Respond"), (NotifyActionCallback) notification_approve_cb,
           self, NULL);
       break;
 
-    case EMPATHY_EVENT_TYPE_VOIP:
     case EMPATHY_EVENT_TYPE_CALL:
-      if (self->priv->event->type == EMPATHY_EVENT_TYPE_VOIP)
-        video = empathy_tp_streamed_media_has_initial_video (
-            EMPATHY_TP_STREAMED_MEDIA (self->priv->event->handler_instance));
-      else
         video = tp_call_channel_has_initial_video (
             TP_CALL_CHANNEL (self->priv->event->handler_instance), NULL);
 
@@ -260,11 +248,11 @@ notification_is_urgent (EmpathyNotificationsApprover *self,
    * interact ASAP */
   switch (self->priv->event->type) {
     case EMPATHY_EVENT_TYPE_CHAT:
-    case EMPATHY_EVENT_TYPE_VOIP:
     case EMPATHY_EVENT_TYPE_CALL:
     case EMPATHY_EVENT_TYPE_TRANSFER:
     case EMPATHY_EVENT_TYPE_INVITATION:
     case EMPATHY_EVENT_TYPE_AUTH:
+    case EMPATHY_EVENT_TYPE_MENTIONED:
       return TRUE;
 
     case EMPATHY_EVENT_TYPE_SUBSCRIPTION:
@@ -276,30 +264,24 @@ notification_is_urgent (EmpathyNotificationsApprover *self,
   return FALSE;
 }
 
-/* Use x-empathy as prefix for unofficial categories
- * http://www.galago-project.org/specs/notification/0.9/x211.html */
 static const gchar *
 get_category_for_event_type (EmpathyEventType type)
 {
+#define CASE(x) \
+    case EMPATHY_EVENT_TYPE_##x: \
+      return EMPATHY_NOTIFICATION_CATEGORY_##x;
   switch (type) {
-    case EMPATHY_EVENT_TYPE_CHAT:
-      return "im.received";
-    case EMPATHY_EVENT_TYPE_PRESENCE_ONLINE:
-      return "presence.online";
-    case EMPATHY_EVENT_TYPE_PRESENCE_OFFLINE:
-      return "presence.offline";
-    case EMPATHY_EVENT_TYPE_VOIP:
-    case EMPATHY_EVENT_TYPE_CALL:
-      return "x-empathy.call.incoming";
-    case EMPATHY_EVENT_TYPE_TRANSFER:
-      return "x-empathy.transfer.incoming";
-    case EMPATHY_EVENT_TYPE_INVITATION:
-      return "x-empathy.im.room-invitation";
-    case EMPATHY_EVENT_TYPE_AUTH:
-      return "x-empathy.network.auth-request";
-    case EMPATHY_EVENT_TYPE_SUBSCRIPTION:
-      return "x-empathy.im.subscription-request";
+    CASE(CHAT)
+    CASE(PRESENCE_ONLINE)
+    CASE(PRESENCE_OFFLINE)
+    CASE(CALL)
+    CASE(TRANSFER)
+    CASE(INVITATION)
+    CASE(AUTH)
+    CASE(SUBSCRIPTION)
+    CASE(MENTIONED)
   }
+#undef CASE
 
   return NULL;
 }
@@ -351,8 +333,8 @@ update_notification (EmpathyNotificationsApprover *self)
        * to an existing notification with the same title.
        * In this way the previous message will not be lost: the new
        * message will appear below it, in the same notification */
-      notification = notify_notification_new (self->priv->event->header,
-           message_esc, NULL);
+      notification = empathy_notify_manager_create_notification (
+          self->priv->event->header, message_esc, NULL);
 
       if (self->priv->notification == NULL)
         {
@@ -362,9 +344,6 @@ update_notification (EmpathyNotificationsApprover *self)
               G_CALLBACK (notification_closed_cb), self);
         }
 
-      notify_notification_set_timeout (notification,
-          NOTIFY_EXPIRES_DEFAULT);
-
       if (has_x_canonical_append)
         {
           notify_notification_set_hint (notification,