public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
        {
            TTTMessage message           = TTTMessageServer.SharedMessageServer.MessageAtIndex(indexPath.Row);
            TTTMessageTableViewCell cell = (TTTMessageTableViewCell)tableView.CellAt(indexPath);

            if (selectedMessage == message)
            {
                tableView.DeselectRow(indexPath, true);
                selectedMessage = null;
                cell.SetShowReplyButton(false);
            }
            else
            {
                selectedMessage = message;
                cell.SetShowReplyButton(true);
            }
            updateFavoriteButton();
        }
        public override void WillDisplay(UITableView tableView, UITableViewCell cell, NSIndexPath indexPath)
        {
            TTTMessageTableViewCell messageCell = (TTTMessageTableViewCell)cell;
            TTTMessage message = TTTMessageServer.SharedMessageServer.MessageAtIndex(indexPath.Row);

            cell.TextLabel.Text  = message.Text;
            cell.ImageView.Image = TTTProfile.SmallImageForIcon(message.Icon);

            if (messageCell.ReplyButton == null)
            {
                UIButton replyButton = UIButton.FromType(UIButtonType.System);
                replyButton.TouchUpInside += newMessage;
                replyButton.SetImage(UIImage.FromBundle("reply"), UIControlState.Normal);
                replyButton.SizeToFit();
                messageCell.ReplyButton = replyButton;
            }

            bool isSelected = tableView.IndexPathForSelectedRow != null &&
                              tableView.IndexPathForSelectedRow.Equals(indexPath);

            messageCell.SetShowReplyButton(isSelected);
        }
        public override void RowDeselected(UITableView tableView, NSIndexPath indexPath)
        {
            TTTMessageTableViewCell cell = (TTTMessageTableViewCell)tableView.CellAt(indexPath);

            cell.SetShowReplyButton(false);
        }