/// <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; } }