Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        private void PushNextNotication(Services.InAppNotificationPayload payload)
        {
            NoticationRequestQueue.Enqueue(payload);

            // 前に表示した通知が時間設定されていない場合には強制非表示
            if (_CurrentNotication != null && _CurrentNotication.ShowDuration == null)
            {
                LiteNotification.Dismiss();
            }
            else
            {
                TryNextDisplayNotication();
            }
        }
Beispiel #3
0
        private void PushNextNotication(Services.InAppNotificationPayload payload)
        {
            NoticationRequestQueue.Enqueue(payload);

            _ = _uiDispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                // 前に表示した通知が時間設定されていない場合には強制非表示
                if (_CurrentNotication != null && _CurrentNotication.ShowDuration == null)
                {
                    LiteNotification.Dismiss();
                }
                else
                {
                    TryNextDisplayNotication();
                }
            });
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
 private void LiteNotification_Dismissed(object sender, EventArgs e)
 {
     _CurrentNotication = null;
     (sender as Microsoft.Toolkit.Uwp.UI.Controls.InAppNotification).DataContext = null;
     TryNextDisplayNotication();
 }
Beispiel #6
0
 private void OnNotificationRequested(Services.InAppNotificationPayload payload)
 {
     PushNextNotication(payload);
 }