コード例 #1
0
        private async void OnItemLongPressed(object sender, ItemLongPressedEventArgs e)
        {
            if (newMessageInputShown)
            {
                return;
            }

            var message = (Message)e.Item;

            // Possible to delete current user messages that is not older than 1d
            if (dialogId == AuthorizationManager.UserId ||
                message.Profile?.Id != AuthorizationManager.UserId ||
                message.Date < DateTime.Now.AddDays(-1) ||
                message.Deleted)
            {
                longTappedMessageId = null;
                return;
            }

            // Delete by double long press
            if (longTappedMessageId != message.Id)
            {
                longTappedMessageId = message.Id;
                return;
            }

            longTappedMessageId         = null;
            activityIndicator.IsVisible = true;

            await NetExceptionCatchHelpers.CatchNetException(
                () => messagesManager.DeleteMessage(dialogId, message.Id),
                () =>
            {
                OnItemLongPressed(sender, e);
                return(Task.CompletedTask);
            },
                LocalizedStrings.DeleteMessageNoInternetError);

            activityIndicator.IsVisible = false;
        }