mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Various improvements
This commit is contained in:
@@ -1340,9 +1340,8 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
self.titleTopicsAccessoryPanelNode = nil
|
||||
}
|
||||
|
||||
var defaultLeftPanelWidth: CGFloat = 72.0
|
||||
defaultLeftPanelWidth += layout.safeInsets.left
|
||||
let leftPanelLeftInset = defaultLeftPanelWidth - 72.0
|
||||
let defaultLeftPanelWidth: CGFloat = 72.0 + 8.0
|
||||
let leftPanelLeftInset = defaultLeftPanelWidth - (72.0 + 8.0)
|
||||
|
||||
var leftPanelSize: CGSize?
|
||||
var dismissedLeftPanel: (component: AnyComponentWithIdentity<ChatSidePanelEnvironment>, view: ComponentView<ChatSidePanelEnvironment>)?
|
||||
@@ -1356,7 +1355,7 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
self.leftPanel = (leftPanelComponent, leftPanel.view)
|
||||
}
|
||||
|
||||
leftPanelSize = CGSize(width: defaultLeftPanelWidth, height: layout.size.height)
|
||||
leftPanelSize = CGSize(width: defaultLeftPanelWidth + 8.0, height: layout.size.height)
|
||||
} else if let leftPanel = self.leftPanel {
|
||||
dismissedLeftPanel = leftPanel
|
||||
self.leftPanel = nil
|
||||
@@ -1378,7 +1377,7 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
titleAccessoryPanelNode.clipsToBounds = true
|
||||
}
|
||||
|
||||
let layoutResult = titleAccessoryPanelNode.updateLayout(width: layout.size.width, leftInset: leftPanelSize?.width ?? layout.safeInsets.left, rightInset: layout.safeInsets.right, transition: immediatelyLayoutTitleAccessoryPanelNodeAndAnimateAppearance ? .immediate : transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
let layoutResult = titleAccessoryPanelNode.updateLayout(width: layout.size.width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, transition: immediatelyLayoutTitleAccessoryPanelNodeAndAnimateAppearance ? .immediate : transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
titleAccessoryPanelHeight = layoutResult.insetHeight
|
||||
titleAccessoryPanelBackgroundHeight = layoutResult.backgroundHeight
|
||||
titleAccessoryPanelHitTestSlop = layoutResult.hitTestSlop
|
||||
@@ -1432,7 +1431,7 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
translationPanelNode.clipsToBounds = true
|
||||
}
|
||||
|
||||
let height = translationPanelNode.updateLayout(width: layout.size.width, leftInset: leftPanelSize?.width ?? layout.safeInsets.left, rightInset: layout.safeInsets.right, leftDisplayInset: leftPanelSize?.width ?? 0.0, transition: immediatelyLayoutTitleAccessoryPanelNodeAndAnimateAppearance ? .immediate : transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
let height = translationPanelNode.updateLayout(width: layout.size.width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, leftDisplayInset: 0.0, transition: immediatelyLayoutTitleAccessoryPanelNodeAndAnimateAppearance ? .immediate : transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
translationPanelHeight = height
|
||||
if immediatelyLayoutTranslationPanelNodeAndAnimateAppearance {
|
||||
translationPanelNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
|
||||
@@ -1496,7 +1495,7 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
self.titleAccessoryPanelContainer.addSubnode(adPanelNode)
|
||||
}
|
||||
|
||||
let height = adPanelNode.updateLayout(width: layout.size.width, leftInset: leftPanelSize?.width ?? layout.safeInsets.left, rightInset: layout.safeInsets.right, transition: transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
let height = adPanelNode.updateLayout(width: layout.size.width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, transition: transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
if let adMessage = self.chatPresentationInterfaceState.adMessage, let opaqueId = adMessage.adAttribute?.opaqueId {
|
||||
self.historyNode.markAdAsSeen(opaqueId: opaqueId)
|
||||
}
|
||||
@@ -1545,7 +1544,7 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
self.titleAccessoryPanelContainer.addSubnode(feePanelNode)
|
||||
}
|
||||
|
||||
let height = feePanelNode.updateLayout(width: layout.size.width, leftInset: leftPanelSize?.width ?? layout.safeInsets.left, rightInset: layout.safeInsets.right, leftDisplayInset: leftPanelSize?.width ?? 0.0, transition: animateAppearance ? .immediate : transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
let height = feePanelNode.updateLayout(width: layout.size.width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, leftDisplayInset: 0.0, transition: animateAppearance ? .immediate : transition, interfaceState: self.chatPresentationInterfaceState)
|
||||
|
||||
feePanelHeight = height
|
||||
if transition.isAnimated && animateAppearance {
|
||||
@@ -1848,8 +1847,6 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
|
||||
var titlePanelsContentOffset: CGFloat = 0.0
|
||||
|
||||
let sidePanelTopInset: CGFloat = insets.top
|
||||
|
||||
var titleTopicsAccessoryPanelFrame: CGRect?
|
||||
if let _ = self.titleTopicsAccessoryPanelNode, let panelHeight = titleTopicsAccessoryPanelHeight {
|
||||
titleTopicsAccessoryPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: titlePanelsContentOffset), size: CGSize(width: layout.size.width, height: panelHeight))
|
||||
@@ -1897,15 +1894,10 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
insets.top += panelHeight
|
||||
extraNavigationBarHeight += panelHeight
|
||||
}
|
||||
|
||||
var extraNavigationBarLeftCutout: CGSize?
|
||||
if let leftPanelSize {
|
||||
extraNavigationBarLeftCutout = CGSize(width: leftPanelSize.width, height: navigationBarHeight)
|
||||
} else {
|
||||
extraNavigationBarLeftCutout = CGSize(width: 0.0, height: navigationBarHeight)
|
||||
}
|
||||
|
||||
updateExtraNavigationBarBackgroundHeight(extraNavigationBarHeight, extraNavigationBarHitTestSlop, extraNavigationBarLeftCutout, transition)
|
||||
updateExtraNavigationBarBackgroundHeight(extraNavigationBarHeight, extraNavigationBarHitTestSlop, nil, transition)
|
||||
|
||||
let sidePanelTopInset: CGFloat = insets.top
|
||||
|
||||
let contentBounds = CGRect(x: 0.0, y: 0.0, width: layout.size.width - wrappingInsets.left - wrappingInsets.right, height: layout.size.height - wrappingInsets.top - wrappingInsets.bottom)
|
||||
|
||||
@@ -2543,31 +2535,22 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
ChatSidePanelEnvironment(insets: UIEdgeInsets(
|
||||
top: 0.0,
|
||||
left: leftPanelLeftInset,
|
||||
bottom: containerInsets.bottom + inputPanelsHeight,
|
||||
bottom: containerInsets.bottom + inputPanelsHeight + 8.0,
|
||||
right: 0.0
|
||||
))
|
||||
},
|
||||
containerSize: CGSize(width: leftPanelSize.width, height: leftPanelSize.height - sidePanelTopInset)
|
||||
containerSize: CGSize(width: defaultLeftPanelWidth, height: leftPanelSize.height - sidePanelTopInset)
|
||||
)
|
||||
|
||||
let leftPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: sidePanelTopInset), size: leftPanelSize)
|
||||
let leftPanelFrame = CGRect(origin: CGPoint(x: layout.safeInsets.left, y: sidePanelTopInset), size: leftPanelSize)
|
||||
if let leftPanelView = leftPanel.view.view {
|
||||
if leftPanelView.superview == nil {
|
||||
self.leftPanelContainer.view.addSubview(leftPanelView)
|
||||
}
|
||||
if immediatelyLayoutLeftPanelNodeAndAnimateAppearance {
|
||||
leftPanelView.frame = leftPanelFrame.offsetBy(dx: -leftPanelSize.width, dy: 0.0)
|
||||
|
||||
if self.titleTopicsAccessoryPanelNode != nil || dismissedTitleTopicsAccessoryPanelNode != nil {
|
||||
if let leftPanelView = leftPanelView as? ChatSideTopicsPanel.View {
|
||||
leftPanelView.updateGlobalOffset(globalOffset: -leftPanelSize.width, transition: ComponentTransition(transition))
|
||||
}
|
||||
}
|
||||
leftPanelView.frame = leftPanelFrame.offsetBy(dx: -leftPanelSize.width - 16.0, dy: 0.0)
|
||||
}
|
||||
transition.updateFrame(view: leftPanelView, frame: leftPanelFrame)
|
||||
if let leftPanelView = leftPanelView as? ChatSideTopicsPanel.View {
|
||||
leftPanelView.updateGlobalOffset(globalOffset: 0.0, transition: ComponentTransition(transition))
|
||||
}
|
||||
}
|
||||
}
|
||||
if let dismissedLeftPanel, let dismissedLeftPanelView = dismissedLeftPanel.view.view {
|
||||
@@ -2584,14 +2567,9 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
},
|
||||
containerSize: CGSize(width: defaultLeftPanelWidth, height: layout.size.height - sidePanelTopInset - (containerInsets.bottom + inputPanelsHeight))
|
||||
)
|
||||
transition.updateFrame(view: dismissedLeftPanelView, frame: CGRect(origin: CGPoint(x: -dismissedLeftPanelSize.width, y: sidePanelTopInset), size: dismissedLeftPanelSize), completion: { [weak dismissedLeftPanelView] _ in
|
||||
transition.updateFrame(view: dismissedLeftPanelView, frame: CGRect(origin: CGPoint(x: -layout.safeInsets.left - dismissedLeftPanelSize.width - 16.0, y: sidePanelTopInset), size: dismissedLeftPanelSize), completion: { [weak dismissedLeftPanelView] _ in
|
||||
dismissedLeftPanelView?.removeFromSuperview()
|
||||
})
|
||||
if let dismissedLeftPanelView = dismissedLeftPanelView as? ChatSideTopicsPanel.View {
|
||||
if self.titleTopicsAccessoryPanelNode != nil {
|
||||
dismissedLeftPanelView.updateGlobalOffset(globalOffset: -dismissedLeftPanelSize.width, transition: ComponentTransition(transition))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if let navigationBarBackgroundContent = self.navigationBarBackgroundContent {
|
||||
@@ -2612,12 +2590,8 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
if let titleTopicsAccessoryPanelNode = self.titleTopicsAccessoryPanelNode, let titleTopicsAccessoryPanelFrame, (immediatelyLayoutTitleTopicsAccessoryPanelNodeAndAnimateAppearance || !titleTopicsAccessoryPanelNode.frame.equalTo(titleTopicsAccessoryPanelFrame)) {
|
||||
if immediatelyLayoutTitleTopicsAccessoryPanelNodeAndAnimateAppearance {
|
||||
titleTopicsAccessoryPanelNode.frame = titleTopicsAccessoryPanelFrame.offsetBy(dx: 0.0, dy: -titleTopicsAccessoryPanelFrame.height)
|
||||
if self.leftPanel != nil || dismissedLeftPanel != nil {
|
||||
titleTopicsAccessoryPanelNode.updateGlobalOffset(globalOffset: -titleTopicsAccessoryPanelFrame.height, transition: .immediate)
|
||||
}
|
||||
|
||||
ComponentTransition(transition).setFrame(view: titleTopicsAccessoryPanelNode.view, frame: titleTopicsAccessoryPanelFrame)
|
||||
titleTopicsAccessoryPanelNode.updateGlobalOffset(globalOffset: 0.0, transition: ComponentTransition(transition))
|
||||
} else {
|
||||
let previousFrame = titleTopicsAccessoryPanelNode.frame
|
||||
titleTopicsAccessoryPanelNode.frame = titleTopicsAccessoryPanelFrame
|
||||
@@ -2759,9 +2733,6 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
||||
transition.updateFrame(node: dismissedTitleTopicsAccessoryPanelNode, frame: dismissedTopPanelFrame, completion: { [weak dismissedTitleTopicsAccessoryPanelNode] _ in
|
||||
dismissedTitleTopicsAccessoryPanelNode?.removeFromSupernode()
|
||||
})
|
||||
if self.leftPanel != nil {
|
||||
dismissedTitleTopicsAccessoryPanelNode.updateGlobalOffset(globalOffset: -dismissedTopPanelFrame.height, transition: ComponentTransition(transition))
|
||||
}
|
||||
}
|
||||
|
||||
if let dismissedTitleAccessoryPanelNode {
|
||||
|
||||
Reference in New Issue
Block a user