Added "owner" label in group info member list

This commit is contained in:
Ilya Laktyushin 2019-06-20 13:51:02 +02:00
parent 8622b4ee0a
commit b3bc8b4ef6
5 changed files with 3149 additions and 3136 deletions

View File

@ -4452,3 +4452,5 @@ Any member of this group will be able to see messages in the channel.";
"Group.PublicLink.Info" = "People can share this link with others and find your group using Telegram search.\n\nYou can use **a-z**, **0-9** and underscores. Minimum length is **5** characters.";
"CreateGroup.ErrorLocatedGroupsTooMuch" = "Sorry, you have too many location-based groups already. Please delete one of your existing ones first.";
"GroupInfo.LabelOwner" = "owner";

View File

@ -85,10 +85,17 @@ public func updateChannelOwnership(account: Account, accountStateManager: Accoun
}
|> mapToSignal { currentCreator, currentParticipant -> Signal<[(ChannelParticipant?, RenderedChannelParticipant)], ChannelOwnershipTransferError> in
return account.postbox.transaction { transaction -> Signal<[(ChannelParticipant?, RenderedChannelParticipant)], ChannelOwnershipTransferError> in
if let channel = transaction.getPeer(channelId), let inputChannel = apiInputChannel(channel), let accountUser = transaction.getPeer(account.peerId), let user = transaction.getPeer(memberId), let inputUser = apiInputUser(user) {
if let channel = transaction.getPeer(channelId) as? TelegramChannel, let inputChannel = apiInputChannel(channel), let accountUser = transaction.getPeer(account.peerId), let user = transaction.getPeer(memberId), let inputUser = apiInputUser(user) {
var flags: TelegramChatAdminRightsFlags
if case .broadcast = channel.info {
flags = TelegramChatAdminRightsFlags.broadcastSpecific
} else {
flags = TelegramChatAdminRightsFlags.groupSpecific
}
let updatedParticipant = ChannelParticipant.creator(id: user.id)
let updatedPreviousCreator = ChannelParticipant.member(id: accountUser.id, invitedAt: Int32(Date().timeIntervalSince1970), adminInfo: ChannelParticipantAdminInfo(rights: TelegramChatAdminRights(flags:[]), promotedBy: accountUser.id, canBeEditedByAccountPeer: false), banInfo: nil)
let updatedPreviousCreator = ChannelParticipant.member(id: accountUser.id, invitedAt: Int32(Date().timeIntervalSince1970), adminInfo: ChannelParticipantAdminInfo(rights: TelegramChatAdminRights(flags: flags), promotedBy: accountUser.id, canBeEditedByAccountPeer: false), banInfo: nil)
let checkPassword = twoStepAuthData(account.network)
|> mapError { error -> ChannelOwnershipTransferError in

View File

@ -94,6 +94,7 @@ private enum GroupInfoEntryTag {
private enum GroupInfoMemberStatus {
case member
case admin
case owner
}
private enum GroupEntryStableId: Hashable, Equatable {
@ -529,6 +530,8 @@ private enum GroupInfoEntry: ItemListNodeEntry {
case let .member(theme, strings, dateTimeFormat, nameDisplayOrder, _, _, peer, participant, presence, memberStatus, editing, actions, enabled, selectable):
let label: String?
switch memberStatus {
case .owner:
label = strings.GroupInfo_LabelOwner
case .admin:
label = strings.GroupInfo_LabelAdmin
case .member:
@ -1130,7 +1133,7 @@ private func groupInfoEntries(account: Account, presentationData: PresentationDa
let memberStatus: GroupInfoMemberStatus
switch participant.participant {
case .creator:
memberStatus = .admin
memberStatus = .owner
case let .member(_, _, adminInfo, _):
if adminInfo != nil {
memberStatus = .admin