Use async

This commit is contained in:
LAGonauta 2021-02-27 18:20:34 -03:00
parent 7de1c01fe8
commit 94944a9e2a
2 changed files with 9 additions and 16 deletions

View file

@ -45,7 +45,7 @@ namespace Dino.Plugins.WindowsNotification {
// https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh761494(v=win.10)
// Eventually modern adaptive templates might be desired:
// https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/adaptive-interactive-toasts?tabs=builder-syntax
public ToastNotification Build() {
public async ToastNotification Build() {
ToastTemplateType templateType = _header != null ? ToastTemplateType.ToastText02 : ToastTemplateType.ToastText01;
if (_imagePath != null) {
if (templateType == ToastTemplateType.ToastText02) {
@ -55,7 +55,7 @@ namespace Dino.Plugins.WindowsNotification {
}
}
var template = BuildStanzaFromXml(ToastNotificationManager.GetTemplateContent(templateType));
var template = yield BuildStanzaFromXml(ToastNotificationManager.GetTemplateContent(templateType));
{ // add header and body
var attributes = new Gee.ArrayList<StanzaAttribute>();
attributes.add(new StanzaAttribute.build("", "id", "1"));
@ -105,17 +105,10 @@ namespace Dino.Plugins.WindowsNotification {
return new ToastNotification(xml);
}
private StanzaNode BuildStanzaFromXml(string xml) {
private async StanzaNode BuildStanzaFromXml(string xml) {
var reader = new Xmpp.StanzaReader.for_string(xml);
StanzaNode root_node = null;
var loop = new MainLoop();
reader.read_node
.begin((obj, res) => {
root_node = reader.read_node.end(res);
loop.quit();
});
loop.run();
StanzaNode root_node = yield reader.read_node();
ExecuteOnAllSubNodes(root_node, (node) => {
node.ns_uri = "";

View file

@ -55,7 +55,7 @@ namespace Dino.Plugins.WindowsNotification {
string body = Markup.escape_text(conversation.counterpart.to_string());
var image_path = get_avatar(conversation);
var notification = new ToastNotificationBuilder()
var notification = yield new ToastNotificationBuilder()
.SetHeader(summary)
.SetBody(body)
.SetImage(image_path)
@ -108,7 +108,7 @@ namespace Dino.Plugins.WindowsNotification {
break;
}
var notification = new ToastNotificationBuilder()
var notification = yield new ToastNotificationBuilder()
.SetHeader(summary)
.SetBody(body)
.Build();
@ -130,7 +130,7 @@ namespace Dino.Plugins.WindowsNotification {
string body = _("%s invited you to %s").printf(inviter_display_name, display_room);
var image_path = get_avatar(direct_conversation);
var notification = new ToastNotificationBuilder()
var notification = yield new ToastNotificationBuilder()
.SetHeader(summary)
.SetBody(body)
.SetImage(image_path)
@ -167,7 +167,7 @@ namespace Dino.Plugins.WindowsNotification {
string body = _("%s requests the permission to write in %s").printf(display_name, display_room);
var image_path = get_avatar(conversation);
var notification = new ToastNotificationBuilder()
var notification = yield new ToastNotificationBuilder()
.SetHeader(summary)
.SetBody(body)
.SetImage(image_path)
@ -201,7 +201,7 @@ namespace Dino.Plugins.WindowsNotification {
}
var image_path = get_avatar(conversation);
var notification = new ToastNotificationBuilder()
var notification = yield new ToastNotificationBuilder()
.SetHeader(conversation_display_name)
.SetBody(body)
.SetImage(image_path)