Introduce application context

This commit is contained in:
Luis von der Eltz
2021-02-06 14:52:41 +01:00
parent 97a3efc2a6
commit fd461bb9d4
7 changed files with 114 additions and 29 deletions
@@ -9,6 +9,7 @@ namespace DesktopNotifications.FreeDesktop
{
public class FreeDesktopNotificationManager : INotificationManager, IDisposable
{
private readonly FreeDesktopApplicationContext _appContext;
private const string NotificationsService = "org.freedesktop.Notifications";
private static readonly ObjectPath NotificationsPath = new ObjectPath("/org/freedesktop/Notifications");
@@ -19,8 +20,13 @@ namespace DesktopNotifications.FreeDesktop
private IFreeDesktopNotificationsProxy? _proxy;
public FreeDesktopNotificationManager()
/// <summary>
///
/// </summary>
/// <param name="appContext"></param>
public FreeDesktopNotificationManager(FreeDesktopApplicationContext? appContext = null)
{
_appContext = appContext ?? FreeDesktopApplicationContext.FromCurrentProcess();
_activeNotifications = new Dictionary<uint, Notification>();
}
@@ -65,9 +71,9 @@ namespace DesktopNotifications.FreeDesktop
var actions = GenerateActions(notification);
var id = await _proxy.NotifyAsync(
"MyApp",
_appContext.Name,
0,
string.Empty,
_appContext.AppIcon ?? string.Empty,
notification.Title ?? throw new ArgumentException(),
notification.Body ?? throw new ArgumentException(),
actions.ToArray(),