using Gee; using Dino.Entities; using Dino.Plugins.WindowsNotification.Vapi; using winrt.Windows.UI.Notifications; namespace Dino.Plugins.WindowsNotification { public class Plugin : RootInterface, Object { private static string AUMID = "org.dino.Dino"; private ToastNotifier notifier; private ToastNotification notification; // Notifications remove their actions when they get out of scope public void registered(Dino.Application app) { if (!winrt.InitApartment()) { // log error, return } if (!Win32Api.SetAppModelID(AUMID)) { // log error, return } if (!ShortcutCreator.TryCreateShortcut(AUMID)) { // log error, return } { var text = " Adam Wilson tagged you in a photo On top of McClellan Butte - with Andrew Bares "; this.notifier = new ToastNotifier(AUMID); this.notification = new ToastNotification(text); var token = notification.Activated((c, d) => { var i = 2; stdout.printf("Yay! Activated 1!\n"); }); notification.RemoveActivated(token); token = notification.Activated((c, d) => { var i = 2; stdout.printf("Yay! Activated 2!\n"); }); notifier.Show(notification); } // var provider = new WindowsNotificationProvider(app, Win32Api.SupportsModernNotifications()); // app.stream_interactor.get_module(NotificationEvents.IDENTITY).register_notification_provider(provider); } public void shutdown() { } } }