Exemple #1
0
        private DialogRequest m_Current; // The current request being processed.

        /// <inheritdoc />
        public void ReceiveRequest(DialogRequest request)
        {
            request.disposed += OnRequestDisposed;

            if (m_Current == null)
            {
                m_Current = request;
                m_Current.dialog.Show();
            }
            else
            {
                if (m_Current.priority < request.priority)
                {
                    m_Current.dialog.Hide();
                    m_Requests.Push(m_Current);
                    m_Current = request;
                    m_Current.dialog.Show();
                }
                else
                {
                    m_Requests.Push(request);
                    request.dialog.Hide();
                }
            }
        }
Exemple #2
0
        /// <inheritdoc />
        public IDialog DisplayAlert(DialogPriority priority, string title, string message, string cancel, string confirm, Action onConfirm = null, Action onCancel = null)
        {
            IDialog dialog = (DialogComponent)m_AlertDialogFactory.Create(title, message, cancel, confirm, onCancel, onConfirm);

            m_DialogService.SendRequest(DialogRequest.Create(dialog, priority));
            return(dialog);
        }
Exemple #3
0
        /// <inheritdoc />
        public IDialog DisplayActivity(DialogPriority priority, string message)
        {
            IDialog dialog = (DialogComponent)m_ActivityIndicatorDialogFactory.Create(message);

            m_DialogService.SendRequest(DialogRequest.Create(dialog, priority));
            return(dialog);
        }
Exemple #4
0
        private void DisplayNext()
        {
            if (m_Requests.Count == 0)
            {
                return;
            }

            m_Current = m_Requests.Pop();
            m_Current.dialog.Show();
        }
Exemple #5
0
        private void OnRequestDisposed(DialogRequest request)
        {
            request.disposed -= OnRequestDisposed;

            if (m_Current == request)
            {
                m_Current = null;
                DisplayNext();
            }
            else
            {
                m_Requests.Remove(request);
            }
        }
 /// <inheritdoc />
 public void SendRequest(DialogRequest request)
 {
     m_RequestReceiver.ReceiveRequest(request);
 }