示例#1
0
        private string ConvertEdit(bool hasEditDate, bool hasViaBotId, TLReplyMarkupBase replyMarkup)
        {
            var message = ViewModel;
            var bot     = false;

            if (message.From != null)
            {
                bot = message.From.IsBot;
            }

            return(hasEditDate && !hasViaBotId && !bot && !(replyMarkup is TLReplyInlineMarkup) ? "edited\u00A0\u2009" : string.Empty);
        }
示例#2
0
        private void OnReplyMarkupChanged(TLReplyMarkupBase newValue, TLReplyMarkupBase oldValue)
        {
            var inline = Message is TLMessage;
            var resize = false;

            TLVector <TLKeyboardButtonRow> rows = null;

            if (newValue is TLReplyKeyboardMarkup keyboardMarkup && !inline)
            {
                rows   = keyboardMarkup.Rows;
                resize = keyboardMarkup.IsResize;
            }
示例#3
0
        private void SetReplyMarkup(TLMessage message)
        {
            if (Reply != null && message != null)
            {
                return;
            }

            if (message != null && message.ReplyMarkup != null)
            {
                if (message.ReplyMarkup is TLReplyInlineMarkup)
                {
                    return;
                }

                //var keyboardMarkup = message.ReplyMarkup as TLReplyKeyboardMarkup;
                //if (keyboardMarkup != null && keyboardMarkup.IsPersonal && !message.IsMention)
                //{
                //    return;
                //}

                var keyboardHide = message.ReplyMarkup as TLReplyKeyboardHide;
                if (keyboardHide != null && _replyMarkupMessage != null && _replyMarkupMessage.FromId.Value != message.FromId.Value)
                {
                    return;
                }

                var keyboardForceReply = message.ReplyMarkup as TLReplyKeyboardForceReply;
                if (keyboardForceReply != null /*&& !keyboardForceReply.HasResponse*/)
                {
                    _replyMarkupMessage = null;
                    ReplyMarkup         = null;
                    Reply = message;
                    return;
                }
            }

            //this.SuppressOpenCommandsKeyboard = (message != null && message.ReplyMarkup != null && suppressOpenKeyboard);

            _replyMarkupMessage = message;
            ReplyMarkup         = message?.ReplyMarkup;
        }
示例#4
0
        public void EditMessageAsync(TLInputPeerBase peer, int id, string message, TLVector <TLMessageEntityBase> entities, TLReplyMarkupBase replyMarkup, bool noWebPage, Action <TLUpdatesBase> callback, Action <TLRPCError> faultCallback = null)
        {
            var obj = new TLMessagesEditMessage {
                Flags = 0, Peer = peer, Id = id, Message = message, IsNoWebPage = noWebPage, Entities = entities, ReplyMarkup = replyMarkup
            };

            const string caption = "messages.editMessage";

            SendInformativeMessage <TLUpdatesBase>(caption, obj,
                                                   result =>
            {
                var multiPts = result as ITLMultiPts;
                if (multiPts != null)
                {
                    _updatesService.SetState(multiPts, caption);
                }
                else
                {
                    ProcessUpdates(result, null, true);
                }

                callback?.Invoke(result);
            },
                                                   faultCallback);
        }
示例#5
0
        //public MessageControlBase()
        //{
        //    DataContextChanged += (s, args) =>
        //    {
        //        if (ViewModel != null)
        //        {
        //            Loading(s, null);
        //        }
        //    };
        //}

        #region Binding

        protected Visibility EditedVisibility(bool hasEditDate, bool hasViaBotId, TLReplyMarkupBase replyMarkup)
        {
            return(hasEditDate && !hasViaBotId && replyMarkup?.TypeId != TLType.ReplyInlineMarkup ? Visibility.Visible : Visibility.Collapsed);
        }