예제 #1
0
        protected virtual void OnUpdateCompleted(UpdateCompletedEventArgs e)
        {
            EventHandler <UpdateCompletedEventArgs> handler = UpdateCompleted;

            if (handler != null)
            {
                handler(this, e);
            }
        }
예제 #2
0
        /// <summary>
        /// 触发更新完成事件
        /// </summary>
        /// <param name="e">数据</param>
        protected virtual void OnUpdateCompleted(UpdateCompletedEventArgs e)
        {
            UpdateCompletedEventHandler handler = this.Events[EVENT_UPDATE_COMPLETED] as UpdateCompletedEventHandler;

            if (handler != null)
            {
                handler(this, e);
            }
        }
예제 #3
0
        public void Handle(UpdateCompletedEventArgs args)
        {
            Execute.BeginOnUIThread(async() =>
            {
                Messages.Clear();

                var maxId  = _currentDialog?.UnreadCount > 0 ? _currentDialog.ReadInboxMaxId : int.MaxValue;
                var offset = _currentDialog?.UnreadCount > 0 && maxId > 0 ? -16 : 0;
                await LoadFirstSliceAsync(maxId, offset);
            });
        }
예제 #4
0
        public void Handle(UpdateCompletedEventArgs args)
        {
            BeginOnUIThread(async() =>
            {
                IsFirstSliceLoaded = false;
                IsLastSliceLoaded  = false;

                var maxId  = _dialog?.UnreadCount > 0 ? _dialog.ReadInboxMaxId : int.MaxValue;
                var offset = _dialog?.UnreadCount > 0 && maxId > 0 ? -16 : 0;
                await LoadFirstSliceAsync(maxId, offset);
            });
        }
예제 #5
0
        public void Handle(UpdateCompletedEventArgs args)
        {
            var dialogs = CacheService.GetDialogs();

            Execute.BeginOnUIThread(() =>
            {
                Items.Clear();
                foreach (var dialog in dialogs)
                {
                    Items.Add(dialog);
                }
            });
        }
        private void UpdaterOnUpdaterDownloadCompleted(object sender, UpdateCompletedEventArgs args)
        {
            if (args.Cancelled || args.Error != null)
            {
                return;
            }

            var updaterPath     = typeof(Program).Assembly.Location;
            var targetDirectory = Assembly.GetAssemblyPath();
            var zipPath         = _updater.SavePath;
            var appPath         = Assembly.GetAssemblyLocation();

            _updater.StartUpdater(updaterPath, targetDirectory, zipPath, appPath);
        }
예제 #7
0
        public void Handle(UpdateCompletedEventArgs args)
        {
            var dialogs = _cacheService.GetDialogs();

            ReorderDrafts(dialogs);
            Execute.BeginOnUIThread(() =>
            {
                Clear();

                foreach (var dialog in dialogs)
                {
                    Add(dialog);
                }
            });
        }
 private void _accountService_UpdateCompleted(object sender, UpdateCompletedEventArgs e)
 {
     if (e.Error == null)
         VMLocator.LoggerViewModel.AddLog("Update user information: " + e.Result.ErrorCode);
 }
        public void Handle(UpdateCompletedEventArgs args)
        {
            if (Peer == null)
            {
                return;               // tombstoning
            }
            if (!_isUpdated)
            {
                return;
            }

            CacheService.GetHistoryAsync(
                new TLInt(StateService.CurrentUserId),
                TLUtils.InputPeerToPeer(Peer, StateService.CurrentUserId),
                messages =>
            {
                ProcessRepliesAndAudio(messages);

                Execute.BeginOnUIThread(() =>
                {
                    var messageIndexes = new Dictionary <int, int>();
                    for (var i = 0; i < Items.Count; i++)
                    {
                        messageIndexes[Items[i].Index] = Items[i].Index;
                    }
                    var topMessage  = Items.FirstOrDefault(x => x.Index != 0);
                    var lastMessage = Items.LastOrDefault(x => x.Index != 0);


                    var newMessages         = new List <TLMessageBase>();
                    var newMessagesAtMiddle = new List <TLMessageBase>();
                    foreach (var message in messages)
                    {
                        if (message.Index != 0)                            //возможно, это новое сообщение
                        {
                            if (topMessage == null && lastMessage == null) // в имеющемся списке нет сообщений с индексом
                            {
                                newMessages.Add(message);
                            }
                            else
                            {
                                if (topMessage != null && message.Index > topMessage.Index)      // до первого сообщения с индексом в списке
                                {
                                    newMessages.Add(message);
                                }
                                else if (lastMessage != null &&
                                         !messageIndexes.ContainsKey(message.Index) &&
                                         message.Index < lastMessage.Index)    // в середине списка до последнего сообщения с индексом
                                {
                                    Execute.ShowDebugMessage("Catch middle message: " + message);
                                    newMessagesAtMiddle.Add(message);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }

                    if (newMessages.Count > 0)
                    {
                        Subtitle = GetSubtitle();

                        for (var i = newMessagesAtMiddle.Count; i > 0; i--)
                        {
                            TLDialog.InsertMessageInOrder(Items, newMessagesAtMiddle[i]);
                        }

                        AddUnreadHistory(newMessages);
                    }
                });
            }, int.MaxValue);
        }
 void AccountClient_UpdateCompleted(object sender, UpdateCompletedEventArgs e)
 {
     if (e.Error == null)
     {
         if (e.Result.ErrorCode == Common.RSSService.WebResult.ErrorCodeList.SUCCESS)
         {
             RefreshAllUser();
         }
     }
 }
예제 #11
0
 public void Handle(UpdateCompletedEventArgs e)
 {
     ProtoService.SetMessageOnTime(0, null);
 }