private void HohoemaInAppNotification_Loaded(object sender, RoutedEventArgs e) { _messenger.Register <InAppNotificationMessage>(this, (r, m) => PushNextNotication(m.Value)); _messenger.Register <InAppNotificationDismissMessage>(this, (r, m) => { LiteNotification.Dismiss(); }); }
private void TryNextDisplayNotication() { if (NoticationRequestQueue.TryDequeue(out var payload)) { _CurrentNotication = payload; LiteNotification.DataContext = payload; LiteNotification.ShowDismissButton = payload.IsShowDismissButton; LiteNotification.Show((int)(payload.ShowDuration ?? DefaultShowDuration).TotalMilliseconds); } }
private void PushNextNotication(Services.InAppNotificationPayload payload) { NoticationRequestQueue.Enqueue(payload); // 前に表示した通知が時間設定されていない場合には強制非表示 if (_CurrentNotication != null && _CurrentNotication.ShowDuration == null) { LiteNotification.Dismiss(); } else { TryNextDisplayNotication(); } }
private void PushNextNotication(Services.InAppNotificationPayload payload) { NoticationRequestQueue.Enqueue(payload); _ = _uiDispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { // 前に表示した通知が時間設定されていない場合には強制非表示 if (_CurrentNotication != null && _CurrentNotication.ShowDuration == null) { LiteNotification.Dismiss(); } else { TryNextDisplayNotication(); } }); }
private void TryNextDisplayNotication() { // only show Active Window if (_lastActivationState == Windows.UI.Core.CoreWindowActivationState.Deactivated) { NoticationRequestQueue.Clear(); return; } if (NoticationRequestQueue.TryDequeue(out var payload)) { _CurrentNotication = payload; LiteNotification.DataContext = payload; LiteNotification.ShowDismissButton = payload.IsShowDismissButton; LiteNotification.Show((int)(payload.ShowDuration ?? DefaultShowDuration).TotalMilliseconds); } }
public HohoemaInAppNotification() { this.InitializeComponent(); var ea = App.Current.Container.Resolve <IEventAggregator>(); var notificationEvent = ea.GetEvent <Services.InAppNotificationEvent>(); notificationEvent.Subscribe(OnNotificationRequested, ThreadOption.UIThread); var notificationDismissEvent = ea.GetEvent <Services.InAppNotificationDismissEvent>(); notificationDismissEvent.Subscribe((_) => { LiteNotification.Dismiss(); }, ThreadOption.UIThread); LiteNotification.Dismissed += LiteNotification_Dismissed; }
public HohoemaInAppNotification() { this.InitializeComponent(); var ea = App.Current.Container.Resolve <IEventAggregator>(); var notificationEvent = ea.GetEvent <Services.InAppNotificationEvent>(); notificationEvent.Subscribe(PushNextNotication, ThreadOption.UIThread); var notificationDismissEvent = ea.GetEvent <Services.InAppNotificationDismissEvent>(); notificationDismissEvent.Subscribe((_) => { LiteNotification.Dismiss(); }, ThreadOption.UIThread); LiteNotification.Closed += LiteNotification_Dismissed; Window.Current.CoreWindow.Activated += CoreWindow_Activated; _uiDispatcher = Dispatcher; }
private void TryNextDisplayNotication() { // only show Active Window if (_CurrentActiveWindowUIContextService.UIContext != UIContext) { NoticationRequestQueue.Clear(); return; } if (NoticationRequestQueue.TryDequeue(out var payload)) { if (payload == null) { return; } _CurrentNotication = payload; LiteNotification.DataContext = payload; LiteNotification.ShowDismissButton = payload.IsShowDismissButton; LiteNotification.Show((int)(payload.ShowDuration ?? DefaultShowDuration).TotalMilliseconds); } }