private async void RevokeLinkExecute(Chat chat) { if (chat.Type is ChatTypeSupergroup super) { var supergroup = ProtoService.GetSupergroup(super.SupergroupId); if (supergroup == null) { return; } var dialog = new MessagePopup(); dialog.Title = Strings.Resources.AppName; dialog.Message = string.Format(Strings.Resources.RevokeLinkAlert, MeUrlPrefixConverter.Convert(CacheService, supergroup.Username, true), chat.Title); dialog.PrimaryButtonText = Strings.Resources.RevokeButton; dialog.SecondaryButtonText = Strings.Resources.Cancel; var confirm = await dialog.ShowQueuedAsync(); if (confirm == ContentDialogResult.Primary) { var response = await ProtoService.SendAsync(new SetSupergroupUsername(supergroup.Id, string.Empty)); if (response is Ok) { HasTooMuchUsernames = false; AdminedPublicChannels.Clear(); } } } }
private async void RevokeLinkExecute(TLChannel channel) { var dialog = new TLMessageDialog(); dialog.Title = Strings.Android.AppName; dialog.Message = string.Format(Strings.Android.RevokeLinkAlert, channel.Username, channel.DisplayName); dialog.PrimaryButtonText = Strings.Android.RevokeButton; dialog.SecondaryButtonText = Strings.Android.Cancel; var confirm = await dialog.ShowQueuedAsync(); if (confirm == ContentDialogResult.Primary) { var response = await ProtoService.UpdateUsernameAsync(channel.ToInputChannel(), string.Empty); if (response.IsSucceeded) { channel.HasUsername = false; channel.Username = null; channel.RaisePropertyChanged(() => channel.HasUsername); channel.RaisePropertyChanged(() => channel.Username); HasTooMuchUsernames = false; AdminedPublicChannels.Clear(); } } }
private async void RevokeLinkExecute(TLChannel channel) { var dialog = new TLMessageDialog(); dialog.Title = "Revoke link"; dialog.Message = string.Format("Are you sure you want to revoke the link t.me/{0}?\r\n\r\nThe channel \"{1}\" will become private.", channel.Username, channel.DisplayName); dialog.PrimaryButtonText = "Revoke"; dialog.SecondaryButtonText = "Cancel"; var confirm = await dialog.ShowQueuedAsync(); if (confirm == ContentDialogResult.Primary) { var response = await ProtoService.UpdateUsernameAsync(channel.ToInputChannel(), string.Empty); if (response.IsSucceeded) { channel.HasUsername = false; channel.Username = null; channel.RaisePropertyChanged(() => channel.HasUsername); channel.RaisePropertyChanged(() => channel.Username); HasTooMuchUsernames = false; AdminedPublicChannels.Clear(); } } }
private async void LoadAdminedPublicChannels() { if (AdminedPublicChannels.Count > 0) { return; } var response = await ProtoService.SendAsync(new GetCreatedPublicChats()); if (response is Telegram.Td.Api.Chats chats) { var result = new List <Chat>(); foreach (var id in chats.ChatIds) { var chat = ProtoService.GetChat(id); if (chat != null) { result.Add(chat); } } AdminedPublicChannels.ReplaceWith(result); } else if (response is Error error) { Execute.ShowDebugMessage("channels.getAdminedPublicChannels error " + error); } }
private async void LoadAdminedPublicChannels() { if (AdminedPublicChannels.Count > 0) { return; } var response = await ProtoService.GetAdminedPublicChannelsAsync(); if (response.IsSucceeded) { AdminedPublicChannels.ReplaceWith(response.Result.Chats.OfType <TLChannel>()); } else { Execute.ShowDebugMessage("channels.getAdminedPublicChannels error " + response.Error); } }
private void GetAdminedPublichChannelsAsync() { if (AdminedPublicChannels.Count > 0) { return; } MTProtoService.GetAdminedPublicChannelsAsync( result => BeginOnUIThread(() => { AdminedPublicChannels.Clear(); foreach (var chat in result.Chats) { AdminedPublicChannels.Add(chat); } }), error => BeginOnUIThread(() => { Execute.ShowDebugMessage("channels.getAdminedPublicChannels error " + error); })); }