public void Add(ToastType type, string message, string title, Action <ToastOptions> configure) { if (message.IsEmpty()) { return; } message = message.Trimmed(); title = title.Trimmed(); var options = new ToastOptions(type, Configuration); configure?.Invoke(options); var toast = new Toast(title, message, options); ToastLock.EnterWriteLock(); try { if (Configuration.PreventDuplicates && ToastAlreadyPresent(toast)) { return; } toast.OnClose += Remove; Toasts.Add(toast); } finally { ToastLock.ExitWriteLock(); } OnToastsUpdated?.Invoke(); }
public void Clear() { ToastLock.EnterWriteLock(); try { RemoveAllToasts(Toasts); } finally { ToastLock.ExitWriteLock(); } OnToastsUpdated?.Invoke(); }
public void Remove(Toast toast) { toast.Dispose(); toast.OnClose -= Remove; ToastLock.EnterWriteLock(); try { var index = Toasts.IndexOf(toast); if (index < 0) { return; } Toasts.RemoveAt(index); } finally { ToastLock.ExitWriteLock(); } OnToastsUpdated?.Invoke(); }