Voice Chat UI fixes

This commit is contained in:
Ilya Laktyushin 2020-12-14 20:10:32 +04:00
parent f3c2187777
commit 9441f3999d
5 changed files with 1425 additions and 1397 deletions

View File

@ -6021,3 +6021,5 @@ Sorry for the inconvenience.";
"Channel.AdminLog.MutedNewMembers" = "%1$@ muted new members"; "Channel.AdminLog.MutedNewMembers" = "%1$@ muted new members";
"Group.GroupMembersHeader" = "GROUP MEMBERS"; "Group.GroupMembersHeader" = "GROUP MEMBERS";
"Conversation.VoiceChatMediaRecordingRestricted" = "You can't record voice and video messages during a voice chat.";

View File

@ -5042,6 +5042,29 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
subjectFlags = .banSendMedia subjectFlags = .banSendMedia
} }
if case .mediaRecording = subject, let _ = strongSelf.presentationInterfaceState.activeGroupCallInfo {
let rect = strongSelf.chatDisplayNode.frameForInputActionButton()
if let rect = rect {
strongSelf.mediaRestrictedTooltipController?.dismiss()
let tooltipController = TooltipController(content: .text(strongSelf.presentationInterfaceState.strings.Conversation_VoiceChatMediaRecordingRestricted), baseFontSize: strongSelf.presentationData.listsFontSize.baseDisplaySize)
strongSelf.mediaRestrictedTooltipController = tooltipController
strongSelf.mediaRestrictedTooltipControllerMode = false
tooltipController.dismissed = { [weak tooltipController] _ in
if let strongSelf = self, let tooltipController = tooltipController, strongSelf.mediaRestrictedTooltipController === tooltipController {
strongSelf.mediaRestrictedTooltipController = nil
}
}
strongSelf.present(tooltipController, in: .window(.root), with: TooltipControllerPresentationArguments(sourceNodeAndRect: {
if let strongSelf = self {
return (strongSelf.chatDisplayNode, rect)
}
return nil
}))
}
return
}
let bannedPermission: (Int32, Bool)? let bannedPermission: (Int32, Bool)?
if let channel = strongSelf.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel { if let channel = strongSelf.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel {
bannedPermission = channel.hasBannedPermission(subjectFlags) bannedPermission = channel.hasBannedPermission(subjectFlags)

View File

@ -1365,7 +1365,9 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate {
} }
let mediaInputDisabled: Bool let mediaInputDisabled: Bool
if let channel = interfaceState.renderedPeer?.peer as? TelegramChannel, channel.hasBannedPermission(.banSendMedia) != nil { if let _ = interfaceState.activeGroupCallInfo {
mediaInputDisabled = true
} else if let channel = interfaceState.renderedPeer?.peer as? TelegramChannel, channel.hasBannedPermission(.banSendMedia) != nil {
mediaInputDisabled = true mediaInputDisabled = true
} else if let group = interfaceState.renderedPeer?.peer as? TelegramGroup, group.hasBannedPermission(.banSendMedia) { } else if let group = interfaceState.renderedPeer?.peer as? TelegramGroup, group.hasBannedPermission(.banSendMedia) {
mediaInputDisabled = true mediaInputDisabled = true
@ -1485,7 +1487,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate {
self.counterTextNode.attributedText = NSAttributedString(string: "", font: counterFont, textColor: .black) self.counterTextNode.attributedText = NSAttributedString(string: "", font: counterFont, textColor: .black)
} }
if let (width, leftInset, rightInset, additionalSideInsets, maxHeight, metrics, _) = self.validLayout { if let (width, leftInset, rightInset, _, maxHeight, metrics, _) = self.validLayout {
var composeButtonsOffset: CGFloat = 0.0 var composeButtonsOffset: CGFloat = 0.0
if self.extendedSearchLayout { if self.extendedSearchLayout {
composeButtonsOffset = 44.0 composeButtonsOffset = 44.0