aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/src/ui/notifier_freedesktop.vala16
1 files changed, 14 insertions, 2 deletions
diff --git a/main/src/ui/notifier_freedesktop.vala b/main/src/ui/notifier_freedesktop.vala
index 78ed2d1e..634f331b 100644
--- a/main/src/ui/notifier_freedesktop.vala
+++ b/main/src/ui/notifier_freedesktop.vala
@@ -10,6 +10,7 @@ public class Dino.Ui.FreeDesktopNotifier : NotificationProvider, Object {
private StreamInteractor stream_interactor;
private DBusNotifications dbus_notifications;
private bool supports_body_markup = false;
+ private bool supports_body_hyperlinks = false;
private HashMap<Conversation, uint32> content_notifications = new HashMap<Conversation, uint32>(Conversation.hash_func, Conversation.equals_func);
private HashMap<Conversation, Gee.List<uint32>> conversation_notifications = new HashMap<Conversation, Gee.List<uint32>>(Conversation.hash_func, Conversation.equals_func);
@@ -31,6 +32,9 @@ public class Dino.Ui.FreeDesktopNotifier : NotificationProvider, Object {
case "body-markup":
supports_body_markup = true;
break;
+ case "body-hyperlinks":
+ supports_body_hyperlinks = true;
+ break;
}
}
@@ -65,7 +69,14 @@ public class Dino.Ui.FreeDesktopNotifier : NotificationProvider, Object {
}
public async void notify_message(Message message, Conversation conversation, string conversation_display_name, string? participant_display_name) {
- string body = supports_body_markup ? Markup.escape_text(message.body) : message.body;
+ string body = "";
+ if (supports_body_hyperlinks) {
+ body = Util.parse_add_markup(message.body, null, true, false);
+ } else if (supports_body_markup) {
+ body = Markup.escape_text(message.body);
+ } else {
+ body = message.body;
+ }
yield notify_content_item(conversation, conversation_display_name, participant_display_name, body);
}
@@ -119,6 +130,7 @@ public class Dino.Ui.FreeDesktopNotifier : NotificationProvider, Object {
hash_table["image-path"] = "call-start-symbolic";
hash_table["sound-name"] = new Variant.string("phone-incoming-call");
hash_table["urgency"] = new Variant.byte(2);
+ hash_table["desktop-entry"] = new Variant.string(Dino.Application.get_default().get_application_id());
string[] actions = new string[] {"default", "Open conversation", "reject", _("Reject"), "accept", _("Accept")};
try {
uint32 notification_id = dbus_notifications.notify("Dino", 0, "", summary, body, actions, hash_table, 0);
@@ -305,4 +317,4 @@ public class Dino.Ui.FreeDesktopNotifier : NotificationProvider, Object {
this.func = (owned) func;
}
}
-} \ No newline at end of file
+}