public void UpdateSupergroup(Chat chat, Supergroup group) { Title.Text = group.IsChannel ? Strings.Resources.ChannelSubscribers : Strings.Resources.ChannelMembers; AddNew.Content = group.IsChannel ? Strings.Resources.AddSubscriber : Strings.Resources.AddMember; AddNewPanel.Visibility = group.CanInviteUsers() ? Visibility.Visible : Visibility.Collapsed; Footer.Visibility = group.IsChannel ? Visibility.Visible : Visibility.Collapsed; }
public void UpdateSupergroup(Chat chat, Supergroup group) { TitleLabel.PlaceholderText = group.IsChannel ? Strings.Resources.EnterChannelName : Strings.Resources.GroupName; Delete.Content = group.IsChannel ? Strings.Resources.ChannelDelete : Strings.Resources.DeleteMega; DeletePanel.Footer = group.IsChannel ? Strings.Resources.ChannelDeleteInfo : Strings.Resources.MegaDeleteInfo; Members.Content = group.IsChannel ? Strings.Resources.ChannelSubscribers : Strings.Resources.ChannelMembers; ViewModel.Title = chat.Title; ViewModel.IsSignatures = group.SignMessages; Photo.IsEnabled = group.CanChangeInfo(); TitleLabel.IsReadOnly = !group.CanChangeInfo(); About.IsReadOnly = !group.CanChangeInfo(); ChatType.Content = group.IsChannel ? Strings.Resources.ChannelType : Strings.Resources.GroupType; ChatType.Glyph = group.IsChannel ? Icons.Megaphone : Icons.People; ChatType.Visibility = Visibility.Collapsed; ChatType.Badge = group.Username.Length > 0 ? group.IsChannel ? Strings.Resources.TypePublic : Strings.Resources.TypePublicGroup : group.IsChannel ? chat.HasProtectedContent ? Strings.Resources.TypePrivateRestrictedForwards : Strings.Resources.TypePrivate : chat.HasProtectedContent ? Strings.Resources.TypePrivateGroupRestrictedForwards : Strings.Resources.TypePrivateGroup; ChatHistory.Badge = null; ChatHistory.Visibility = group.CanChangeInfo() && string.IsNullOrEmpty(group.Username) && !group.IsChannel ? Visibility.Visible : Visibility.Collapsed; InviteLinkPanel.Visibility = group.CanInviteUsers() ? Visibility.Visible : Visibility.Collapsed; ChannelSignMessagesPanel.Visibility = group.CanChangeInfo() && group.IsChannel ? Visibility.Visible : Visibility.Collapsed; GroupStickersPanel.Visibility = Visibility.Collapsed; ChatLinked.Visibility = group.IsChannel ? Visibility.Visible : group.HasLinkedChat ? Visibility.Visible : Visibility.Collapsed; ChatLinked.Content = group.IsChannel ? Strings.Resources.Discussion : Strings.Resources.LinkedChannel; ChatLinked.Glyph = group.IsChannel ? Icons.Comment : Icons.Megaphone; ChatLinked.Badge = group.HasLinkedChat ? string.Empty : Strings.Resources.DiscussionInfo; Permissions.Badge = string.Format("{0}/{1}", chat.Permissions.Count(), chat.Permissions.Total()); Permissions.Visibility = group.IsChannel || !group.CanRestrictMembers() ? Visibility.Collapsed : Visibility.Visible; Blacklist.Visibility = group.IsChannel ? Visibility.Visible : Visibility.Collapsed; DeletePanel.Visibility = group.Status is ChatMemberStatusCreator ? Visibility.Visible : Visibility.Collapsed; ChatBasicPanel.Visibility = ChatType.Visibility == Visibility.Visible || ChatHistory.Visibility == Visibility.Visible || ChatLinked.Visibility == Visibility.Visible ? Visibility.Visible : Visibility.Collapsed; }
public void UpdateSupergroup(Chat chat, Supergroup group) { Subtitle.Text = Locale.Declension(group.IsChannel ? "Subscribers" : "Members", group.MemberCount); DescriptionTitle.Text = Strings.Resources.DescriptionPlaceholder; Automation.SetToolTip(Edit, group.IsChannel ? Strings.Resources.ManageChannelMenu : Strings.Resources.ManageGroupMenu); Call.Visibility = Visibility.Collapsed; Edit.Visibility = group.Status is ChatMemberStatusCreator || group.Status is ChatMemberStatusAdministrator ? Visibility.Visible : Visibility.Collapsed; Edit.Glyph = Icons.Edit; Verified.Visibility = group.IsVerified ? Visibility.Visible : Visibility.Collapsed; Username.Badge = $"{group.Username}"; Username.Visibility = string.IsNullOrEmpty(group.Username) ? Visibility.Collapsed : Visibility.Visible; Location.Visibility = group.HasLocation ? Visibility.Visible : Visibility.Collapsed; if (group.IsChannel && !(group.Status is ChatMemberStatusCreator) && !(group.Status is ChatMemberStatusLeft) && !(group.Status is ChatMemberStatusBanned)) { MiscPanel.Visibility = Visibility.Visible; GroupLeave.Visibility = Visibility.Visible; } else { MiscPanel.Visibility = Visibility.Collapsed; GroupLeave.Visibility = Visibility.Collapsed; } GroupInvite.Visibility = !group.IsChannel && group.CanInviteUsers() ? Visibility.Visible : Visibility.Collapsed; ChannelMembersPanel.Visibility = group.IsChannel && (group.Status is ChatMemberStatusCreator || group.Status is ChatMemberStatusAdministrator) ? Visibility.Visible : Visibility.Collapsed; MembersPanel.Visibility = group.IsChannel ? Visibility.Collapsed : Visibility.Visible; //Admins.Visibility = Visibility.Collapsed; //Banned.Visibility = Visibility.Collapsed; //Restricted.Visibility = Visibility.Collapsed; //Members.Visibility = Visibility.Collapsed; if (!group.IsChannel && (ViewModel.Members == null || group.MemberCount < 200 && group.MemberCount != ViewModel.Members.Count)) { ViewModel.Members = ViewModel.CreateMembers(group.Id); } // Unused: UserPhone.Visibility = Visibility.Collapsed; UserCommonChats.Visibility = Visibility.Collapsed; UserStartSecret.Visibility = Visibility.Collapsed; SecretLifetime.Visibility = Visibility.Collapsed; SecretHashKey.Visibility = Visibility.Collapsed; }
public void UpdateSupergroup(Chat chat, Supergroup group) { Subtitle.Text = Locale.Declension(group.IsChannel ? "Subscribers" : "Members", group.MemberCount); Verified.Visibility = group.IsVerified ? Visibility.Visible : Visibility.Collapsed; Username.Content = $"@{group.Username}"; Username.Visibility = string.IsNullOrEmpty(group.Username) ? Visibility.Collapsed : Visibility.Visible; DescriptionTitle.Visibility = Visibility.Collapsed; DescriptionLabel.Padding = new Thickness(12); if (group.IsChannel && !(group.Status is ChatMemberStatusCreator) && !(group.Status is ChatMemberStatusLeft) && !(group.Status is ChatMemberStatusBanned)) { GroupLeave.Visibility = Visibility.Visible; } else { GroupLeave.Visibility = Visibility.Collapsed; } GroupInvite.Visibility = group.CanInviteUsers() ? Visibility.Visible : Visibility.Collapsed; EventLog.Visibility = group.Status is ChatMemberStatusCreator || group.Status is ChatMemberStatusAdministrator ? Visibility.Visible : Visibility.Collapsed; if (!group.IsChannel) { ViewModel.Members = ViewModel.CreateMembers(group.Id); } // Unused: UserPhone.Visibility = Visibility.Collapsed; UserCommonChats.Visibility = Visibility.Collapsed; UserStartSecret.Visibility = Visibility.Collapsed; SecretLifetime.Visibility = Visibility.Collapsed; SecretHashKey.Visibility = Visibility.Collapsed; }
public void UpdateSupergroupFullInfo(Chat chat, Supergroup group, SupergroupFullInfo fullInfo) { GroupStickersPanel.Visibility = fullInfo.CanSetStickerSet ? Visibility.Visible : Visibility.Collapsed; ViewModel.About = fullInfo.Description; ViewModel.IsAllHistoryAvailable = fullInfo.IsAllHistoryAvailable; ChatType.Visibility = fullInfo.CanSetUsername ? Visibility.Visible : Visibility.Collapsed; ChatHistory.Badge = fullInfo.IsAllHistoryAvailable ? Strings.Resources.ChatHistoryVisible : Strings.Resources.ChatHistoryHidden; var linkedChat = ViewModel.CacheService.GetChat(fullInfo.LinkedChatId); if (linkedChat != null) { ChatLinked.Badge = linkedChat.Title; } else { ChatLinked.Badge = Strings.Resources.DiscussionInfo; } Admins.Badge = fullInfo.AdministratorCount; Members.Badge = fullInfo.MemberCount; Blacklist.Badge = fullInfo.BannedCount; if (group.CanInviteUsers()) { if (fullInfo.InviteLink == null && string.IsNullOrEmpty(group.Username)) { InviteLinkPanel.Visibility = Visibility.Collapsed; ViewModel.ProtoService.Send(new CreateChatInviteLink(chat.Id, string.Empty, 0, 0, false)); } else if (string.IsNullOrEmpty(group.Username)) { InviteLink.Text = fullInfo.InviteLink?.InviteLink; RevokeLink.Visibility = Visibility.Visible; InviteLinkPanel.Visibility = Visibility.Visible; } else { InviteLink.Text = MeUrlPrefixConverter.Convert(ViewModel.CacheService, group.Username); RevokeLink.Visibility = Visibility.Collapsed; InviteLinkPanel.Visibility = Visibility.Visible; } } else { InviteLinkPanel.Visibility = Visibility.Collapsed; } ChatBasicPanel.Visibility = ChatType.Visibility == Visibility.Visible || ChatHistory.Visibility == Visibility.Visible || ChatLinked.Visibility == Visibility.Visible ? Visibility.Visible : Visibility.Collapsed; if (fullInfo.StickerSetId == 0 || !fullInfo.CanSetStickerSet) { return; } ViewModel.ProtoService.Send(new GetStickerSet(fullInfo.StickerSetId), result => { this.BeginOnUIThread(() => { if (result is StickerSet set && ViewModel.Chat?.Id == chat.Id) { GroupStickers.Badge = set.Title; } }); });
public void UpdateSupergroup(Chat chat, Supergroup group) { AddMore.Visibility = group.CanInviteUsers() ? Visibility.Visible : Visibility.Collapsed; }