void ShowNextMessage() { if (MessageBarQueue.Count > 0) { MessageVisible = true; MessageView messageView = MessageBarQueue.Dequeue(); messageView.Frame = new RectangleF(0, -messageView.Height, messageView.Width, messageView.Height); messageView.Hidden = false; messageView.SetNeedsDisplay(); var gest = new UITapGestureRecognizer(MessageTapped); messageView.AddGestureRecognizer(gest); if (messageView == null) { return; } UIView.Animate(DismissAnimationDuration, () => messageView.Frame = new RectangleF(messageView.Frame.X, MessageBarOffset + messageView.Frame.Y + messageView.Height, messageView.Width, messageView.Height) ); //Need a better way of dissmissing the method var dismiss = new Timer(DismissMessage, messageView, TimeSpan.FromSeconds(DisplayDelay), TimeSpan.FromMilliseconds(-1)); } }
MessageView GetNextMessage() { MessageView message = null; if (!DiscardRepeated) { return(MessageBarQueue.Dequeue()); } while (MessageBarQueue.Count > 0) { message = MessageBarQueue.Dequeue(); if (IsEqualLastMessage(message)) { message = null; } else { break; } } lastMessage = message; return(message); }