Allow admins to mute each other

This commit is contained in:
Ali 2020-12-06 17:39:28 +00:00
parent d292a0c40d
commit a635963061

View File

@ -680,29 +680,45 @@ public final class VoiceChatController: ViewController {
var items: [ContextMenuItem] = [] var items: [ContextMenuItem] = []
if peer.id != strongSelf.context.account.peerId { if peer.id != strongSelf.context.account.peerId {
if let callState = strongSelf.callState, (callState.canManageCall || callState.adminIds.contains(strongSelf.context.account.peerId)), !callState.adminIds.contains(peer.id) { if let callState = strongSelf.callState, (callState.canManageCall || callState.adminIds.contains(strongSelf.context.account.peerId)) {
if let muteState = entry.muteState, !muteState.canUnmute { if callState.adminIds.contains(peer.id) {
items.append(.action(ContextMenuActionItem(text: strongSelf.presentationData.strings.VoiceChat_UnmutePeer, icon: { theme in if let _ = entry.muteState {
return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/Unmute"), color: theme.actionSheet.primaryTextColor) } else {
}, action: { _, f in items.append(.action(ContextMenuActionItem(text: strongSelf.presentationData.strings.VoiceChat_MutePeer, icon: { theme in
guard let strongSelf = self else { return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/Mute"), color: theme.actionSheet.primaryTextColor)
return }, action: { _, f in
} guard let strongSelf = self else {
return
strongSelf.call.updateMuteState(peerId: peer.id, isMuted: false) }
f(.default)
}))) strongSelf.call.updateMuteState(peerId: peer.id, isMuted: true)
f(.default)
})))
}
} else { } else {
items.append(.action(ContextMenuActionItem(text: strongSelf.presentationData.strings.VoiceChat_MutePeer, icon: { theme in if let muteState = entry.muteState, !muteState.canUnmute {
return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/Mute"), color: theme.actionSheet.primaryTextColor) items.append(.action(ContextMenuActionItem(text: strongSelf.presentationData.strings.VoiceChat_UnmutePeer, icon: { theme in
}, action: { _, f in return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/Unmute"), color: theme.actionSheet.primaryTextColor)
guard let strongSelf = self else { }, action: { _, f in
return guard let strongSelf = self else {
} return
}
strongSelf.call.updateMuteState(peerId: peer.id, isMuted: true)
f(.default) strongSelf.call.updateMuteState(peerId: peer.id, isMuted: false)
}))) f(.default)
})))
} else {
items.append(.action(ContextMenuActionItem(text: strongSelf.presentationData.strings.VoiceChat_MutePeer, icon: { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/Mute"), color: theme.actionSheet.primaryTextColor)
}, action: { _, f in
guard let strongSelf = self else {
return
}
strongSelf.call.updateMuteState(peerId: peer.id, isMuted: true)
f(.default)
})))
}
} }
} }