Пример #1
0
        /// <summary>
        /// Load more messages when scroll reached the end of the page
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void OnLoadMoreMessages(object sender, ItemVisibilityEventArgs e)
        {
            if (dialogsManager.GetIsInitRequired(dialogId))
            {
                return;
            }

            var message       = (Message)e.Item;
            var messagesCount = messagesManager.GetMessagesCount(dialogId);

            if (messagesCount >= Consts.BatchSize && messagesManager.IsMessageOlderThanAll(dialogId, message.Id))
            {
                activityIndicator.IsVisible = true;
                await NetExceptionCatchHelpers.CatchNetException(
                    async() =>
                {
                    await messagesManager.UpdateMessagesFromApi(dialogId, messagesCount);
                    messagesListView.ScrollIfExist(message, ScrollToPosition.Center);
                },
                    () =>
                {
                    OnLoadMoreMessages(sender, e);
                    return(Task.CompletedTask);
                },
                    LocalizedStrings.MessagesNoInternetError);

                activityIndicator.IsVisible = false;
            }
        }