mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-06 11:30:40 +00:00
Merge commit 'bae050aabf5dc12bcae71f7bbbdc1f87e3f2c296'
This commit is contained in:
commit
03a030942f
@ -4502,13 +4502,19 @@ public final class VoiceChatController: ViewController {
|
|||||||
private func updateVisibility() {
|
private func updateVisibility() {
|
||||||
let visible = self.appIsActive && self.visibility
|
let visible = self.appIsActive && self.visibility
|
||||||
if self.tileGridNode.isHidden {
|
if self.tileGridNode.isHidden {
|
||||||
self.tileGridNode.visiblity = false
|
self.tileGridNode.visibility = false
|
||||||
} else {
|
} else {
|
||||||
self.tileGridNode.visiblity = isVisible
|
self.tileGridNode.visibility = visible
|
||||||
}
|
}
|
||||||
|
self.mainStageNode.visibility = visible
|
||||||
self.listNode.forEachItemNode { itemNode in
|
self.listNode.forEachItemNode { itemNode in
|
||||||
if let itemNode = itemNode as? VoiceChatTilesGridItemNode {
|
if let itemNode = itemNode as? VoiceChatTilesGridItemNode {
|
||||||
itemNode.gridVisiblity = visible
|
itemNode.gridVisibility = visible
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.fullscreenListNode.forEachItemNode { itemNode in
|
||||||
|
if let itemNode = itemNode as? VoiceChatFullscreenParticipantItemNode {
|
||||||
|
itemNode.gridVisibility = visible
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -335,6 +335,22 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var gridVisibility = true {
|
||||||
|
didSet {
|
||||||
|
self.updateIsEnabled()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func updateIsEnabled() {
|
||||||
|
guard let (rect, containerSize) = self.absoluteLocation else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let isVisibleInContainer = rect.maxY >= 0.0 && rect.minY <= containerSize.height
|
||||||
|
if let videoNode = self.videoNode, videoNode.supernode === self.videoContainerNode {
|
||||||
|
videoNode.updateIsEnabled(self.gridVisibility && isVisibleInContainer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private func updateIsExtracted(_ isExtracted: Bool, transition: ContainedViewLayoutTransition) {
|
private func updateIsExtracted(_ isExtracted: Bool, transition: ContainedViewLayoutTransition) {
|
||||||
guard self.isExtracted != isExtracted, let extractedRect = self.extractedRect, let nonExtractedRect = self.nonExtractedRect, let item = self.item else {
|
guard self.isExtracted != isExtracted, let extractedRect = self.extractedRect, let nonExtractedRect = self.nonExtractedRect, let item = self.item else {
|
||||||
return
|
return
|
||||||
@ -959,5 +975,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode {
|
|||||||
var rect = rect
|
var rect = rect
|
||||||
rect.origin.y += self.insets.top
|
rect.origin.y += self.insets.top
|
||||||
self.absoluteLocation = (rect, containerSize)
|
self.absoluteLocation = (rect, containerSize)
|
||||||
|
|
||||||
|
self.updateIsEnabled()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -378,9 +378,18 @@ final class VoiceChatMainStageNode: ASDisplayNode {
|
|||||||
self.stopScreencast?()
|
self.stopScreencast?()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var visibility = true {
|
||||||
|
didSet {
|
||||||
|
if let videoNode = self.currentVideoNode, videoNode.supernode === self {
|
||||||
|
videoNode.updateIsEnabled(self.visibility)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var animating: Bool {
|
var animating: Bool {
|
||||||
return self.animatingIn || self.animatingOut
|
return self.animatingIn || self.animatingOut
|
||||||
}
|
}
|
||||||
|
|
||||||
private var animatingIn = false
|
private var animatingIn = false
|
||||||
private var animatingOut = false
|
private var animatingOut = false
|
||||||
private var appeared = false
|
private var appeared = false
|
||||||
|
@ -35,10 +35,10 @@ final class VoiceChatTileGridNode: ASDisplayNode {
|
|||||||
self.clipsToBounds = true
|
self.clipsToBounds = true
|
||||||
}
|
}
|
||||||
|
|
||||||
var visiblity = true {
|
var visibility = true {
|
||||||
didSet {
|
didSet {
|
||||||
for (_, tileNode) in self.itemNodes {
|
for (_, tileNode) in self.itemNodes {
|
||||||
tileNode.visiblity = self.visiblity
|
tileNode.visibility = self.visibility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -132,7 +132,7 @@ final class VoiceChatTileGridNode: ASDisplayNode {
|
|||||||
self.addSubnode(addedItemNode)
|
self.addSubnode(addedItemNode)
|
||||||
}
|
}
|
||||||
if let itemNode = itemNode {
|
if let itemNode = itemNode {
|
||||||
itemNode.visiblity = self.visiblity
|
itemNode.visibility = self.visibility
|
||||||
if wasAdded {
|
if wasAdded {
|
||||||
itemNode.frame = itemFrame
|
itemNode.frame = itemFrame
|
||||||
if !isFirstTime {
|
if !isFirstTime {
|
||||||
@ -293,7 +293,7 @@ final class VoiceChatTilesGridItemNode: ListViewItemNode {
|
|||||||
strongSelf.cornersNode.image = decorationCornersImage(top: true, bottom: false, dark: item.getIsExpanded())
|
strongSelf.cornersNode.image = decorationCornersImage(top: true, bottom: false, dark: item.getIsExpanded())
|
||||||
|
|
||||||
tileGridNode = VoiceChatTileGridNode(context: item.context)
|
tileGridNode = VoiceChatTileGridNode(context: item.context)
|
||||||
tileGridNode.visiblity = strongSelf.gridVisiblity
|
tileGridNode.visibility = strongSelf.gridVisibility
|
||||||
strongSelf.addSubnode(tileGridNode)
|
strongSelf.addSubnode(tileGridNode)
|
||||||
strongSelf.tileGridNode = tileGridNode
|
strongSelf.tileGridNode = tileGridNode
|
||||||
}
|
}
|
||||||
@ -324,9 +324,9 @@ final class VoiceChatTilesGridItemNode: ListViewItemNode {
|
|||||||
self.tileGridNode?.updateAbsoluteRect(rect, within: containerSize)
|
self.tileGridNode?.updateAbsoluteRect(rect, within: containerSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
var gridVisiblity: Bool = true {
|
var gridVisibility: Bool = true {
|
||||||
didSet {
|
didSet {
|
||||||
self.tileGridNode?.visiblity = self.gridVisiblity
|
self.tileGridNode?.visibility = self.gridVisibility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ final class VoiceChatTileItemNode: ASDisplayNode {
|
|||||||
self.updateIsEnabled()
|
self.updateIsEnabled()
|
||||||
}
|
}
|
||||||
|
|
||||||
var visiblity = true {
|
var visibility = true {
|
||||||
didSet {
|
didSet {
|
||||||
self.updateIsEnabled()
|
self.updateIsEnabled()
|
||||||
}
|
}
|
||||||
@ -335,7 +335,7 @@ final class VoiceChatTileItemNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
let isVisibleInContainer = rect.maxY >= 0.0 && rect.minY <= containerSize.height
|
let isVisibleInContainer = rect.maxY >= 0.0 && rect.minY <= containerSize.height
|
||||||
if let videoNode = self.videoNode, videoNode.supernode === self.videoContainerNode {
|
if let videoNode = self.videoNode, videoNode.supernode === self.videoContainerNode {
|
||||||
videoNode.updateIsEnabled(self.visiblity && isVisibleInContainer)
|
videoNode.updateIsEnabled(self.visibility && isVisibleInContainer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user