mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-07 01:10:09 +00:00
Fix navigation transition
This commit is contained in:
parent
88aa22a8e4
commit
9fed6f0734
@ -413,8 +413,8 @@ official_apple_pay_merchants = [
|
|||||||
"merchant.org.telegram.Best2pay.test",
|
"merchant.org.telegram.Best2pay.test",
|
||||||
"merchant.psbank.test.telegramios",
|
"merchant.psbank.test.telegramios",
|
||||||
"merchant.psbank.prod.telegramios",
|
"merchant.psbank.prod.telegramios",
|
||||||
"merchant.org.telegram.billinenet.test",
|
#"merchant.org.telegram.billinenet.test",
|
||||||
"merchant.org.telegram.portmone.test",
|
#"merchant.org.telegram.portmone.test",
|
||||||
]
|
]
|
||||||
|
|
||||||
official_bundle_ids = [
|
official_bundle_ids = [
|
||||||
|
|||||||
@ -1574,6 +1574,7 @@ open class NavigationBar: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public var intrinsicCanTransitionInline: Bool = true
|
public var intrinsicCanTransitionInline: Bool = true
|
||||||
|
public var shouldTransitionInline: (() -> Bool)?
|
||||||
|
|
||||||
public var passthroughTouches = true
|
public var passthroughTouches = true
|
||||||
|
|
||||||
@ -1581,6 +1582,11 @@ open class NavigationBar: ASDisplayNode {
|
|||||||
if let contentNode = self.contentNode, case .replacement = contentNode.mode {
|
if let contentNode = self.contentNode, case .replacement = contentNode.mode {
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
|
if let shouldTransitionInline = self.shouldTransitionInline {
|
||||||
|
if !shouldTransitionInline() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
return self.intrinsicCanTransitionInline
|
return self.intrinsicCanTransitionInline
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8950,6 +8950,21 @@ public final class PeerInfoScreenImpl: ViewController, PeerInfoScreen, KeyShortc
|
|||||||
}
|
}
|
||||||
|
|
||||||
if self.chatLocation.peerId != nil {
|
if self.chatLocation.peerId != nil {
|
||||||
|
/*self.navigationBar?.shouldTransitionInline = { [weak self] in
|
||||||
|
guard let strongSelf = self else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if strongSelf.navigationItem.leftBarButtonItem != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if strongSelf.controllerNode.scrollNode.view.contentOffset.y > .ulpOfOne {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if strongSelf.controllerNode.headerNode.isAvatarExpanded {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}*/
|
||||||
self.navigationBar?.makeCustomTransitionNode = { [weak self] other, isInteractive in
|
self.navigationBar?.makeCustomTransitionNode = { [weak self] other, isInteractive in
|
||||||
guard let strongSelf = self else {
|
guard let strongSelf = self else {
|
||||||
return nil
|
return nil
|
||||||
@ -9386,9 +9401,11 @@ private final class PeerInfoNavigationTransitionNode: ASDisplayNode, CustomNavig
|
|||||||
|
|
||||||
private var previousContentNode: ASDisplayNode?
|
private var previousContentNode: ASDisplayNode?
|
||||||
private var previousContentNodeFrame: CGRect?
|
private var previousContentNodeFrame: CGRect?
|
||||||
|
private var previousContentNodeAlpha: CGFloat = 1.0
|
||||||
|
|
||||||
private var previousSecondaryContentNode: ASDisplayNode?
|
private var previousSecondaryContentNode: ASDisplayNode?
|
||||||
private var previousSecondaryContentNodeFrame: CGRect?
|
private var previousSecondaryContentNodeFrame: CGRect?
|
||||||
|
private var previousSecondaryContentNodeAlpha: CGFloat = 1.0
|
||||||
|
|
||||||
private var previousTitleNode: (ASDisplayNode, PortalView)?
|
private var previousTitleNode: (ASDisplayNode, PortalView)?
|
||||||
private var previousStatusNode: (ASDisplayNode, ASDisplayNode)?
|
private var previousStatusNode: (ASDisplayNode, ASDisplayNode)?
|
||||||
@ -9476,12 +9493,14 @@ private final class PeerInfoNavigationTransitionNode: ASDisplayNode, CustomNavig
|
|||||||
if let contentNode = bottomNavigationBar.contentNode {
|
if let contentNode = bottomNavigationBar.contentNode {
|
||||||
self.previousContentNode = contentNode
|
self.previousContentNode = contentNode
|
||||||
self.previousContentNodeFrame = contentNode.view.convert(contentNode.view.bounds, to: bottomNavigationBar.view)
|
self.previousContentNodeFrame = contentNode.view.convert(contentNode.view.bounds, to: bottomNavigationBar.view)
|
||||||
|
self.previousContentNodeAlpha = contentNode.alpha
|
||||||
self.addSubnode(contentNode)
|
self.addSubnode(contentNode)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let secondaryContentNode = bottomNavigationBar.secondaryContentNode {
|
if let secondaryContentNode = bottomNavigationBar.secondaryContentNode {
|
||||||
self.previousSecondaryContentNode = secondaryContentNode
|
self.previousSecondaryContentNode = secondaryContentNode
|
||||||
self.previousSecondaryContentNodeFrame = secondaryContentNode.view.convert(secondaryContentNode.view.bounds, to: bottomNavigationBar.view)
|
self.previousSecondaryContentNodeFrame = secondaryContentNode.view.convert(secondaryContentNode.view.bounds, to: bottomNavigationBar.view)
|
||||||
|
self.previousSecondaryContentNodeAlpha = secondaryContentNode.alpha
|
||||||
self.addSubnode(secondaryContentNode)
|
self.addSubnode(secondaryContentNode)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9682,11 +9701,13 @@ private final class PeerInfoNavigationTransitionNode: ASDisplayNode, CustomNavig
|
|||||||
|
|
||||||
if let previousContentNode = self.previousContentNode, let previousContentNodeFrame = self.previousContentNodeFrame {
|
if let previousContentNode = self.previousContentNode, let previousContentNodeFrame = self.previousContentNodeFrame {
|
||||||
previousContentNode.frame = previousContentNodeFrame
|
previousContentNode.frame = previousContentNodeFrame
|
||||||
|
previousContentNode.alpha = self.previousContentNodeAlpha
|
||||||
bottomNavigationBar.insertSubnode(previousContentNode, belowSubnode: bottomNavigationBar.stripeNode)
|
bottomNavigationBar.insertSubnode(previousContentNode, belowSubnode: bottomNavigationBar.stripeNode)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let previousSecondaryContentNode = self.previousSecondaryContentNode, let previousSecondaryContentNodeFrame = self.previousSecondaryContentNodeFrame {
|
if let previousSecondaryContentNode = self.previousSecondaryContentNode, let previousSecondaryContentNodeFrame = self.previousSecondaryContentNodeFrame {
|
||||||
previousSecondaryContentNode.frame = previousSecondaryContentNodeFrame
|
previousSecondaryContentNode.frame = previousSecondaryContentNodeFrame
|
||||||
|
previousSecondaryContentNode.alpha = self.previousSecondaryContentNodeAlpha
|
||||||
bottomNavigationBar.clippingNode.addSubnode(previousSecondaryContentNode)
|
bottomNavigationBar.clippingNode.addSubnode(previousSecondaryContentNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user