mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various fixes
This commit is contained in:
parent
d99dbbffb7
commit
aa00ef9d90
@ -111,7 +111,7 @@ public final class MoreButtonNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc private func buttonPressed() {
|
@objc public func buttonPressed() {
|
||||||
self.action?(self.contextSourceNode, nil)
|
self.action?(self.contextSourceNode, nil)
|
||||||
if case .more = self.iconNode.iconState {
|
if case .more = self.iconNode.iconState {
|
||||||
self.iconNode.play()
|
self.iconNode.play()
|
||||||
|
@ -1339,7 +1339,7 @@ public final class MediaPickerScreen: ViewController, AttachmentContainable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@objc private func rightButtonPressed() {
|
@objc private func rightButtonPressed() {
|
||||||
self.moreButtonNode.action?(self.moreButtonNode.contextSourceNode, nil)
|
self.moreButtonNode.buttonPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
public func resetForReuse() {
|
public func resetForReuse() {
|
||||||
|
@ -1984,6 +1984,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
let subtitleNodeRawContainer: ASDisplayNode
|
let subtitleNodeRawContainer: ASDisplayNode
|
||||||
let subtitleNode: MultiScaleTextNode
|
let subtitleNode: MultiScaleTextNode
|
||||||
let panelSubtitleNode: MultiScaleTextNode
|
let panelSubtitleNode: MultiScaleTextNode
|
||||||
|
let nextPanelSubtitleNode: MultiScaleTextNode
|
||||||
let usernameNodeContainer: ASDisplayNode
|
let usernameNodeContainer: ASDisplayNode
|
||||||
let usernameNodeRawContainer: ASDisplayNode
|
let usernameNodeRawContainer: ASDisplayNode
|
||||||
let usernameNode: MultiScaleTextNode
|
let usernameNode: MultiScaleTextNode
|
||||||
@ -2045,6 +2046,9 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
self.panelSubtitleNode = MultiScaleTextNode(stateKeys: [TitleNodeStateRegular, TitleNodeStateExpanded])
|
self.panelSubtitleNode = MultiScaleTextNode(stateKeys: [TitleNodeStateRegular, TitleNodeStateExpanded])
|
||||||
self.panelSubtitleNode.displaysAsynchronously = false
|
self.panelSubtitleNode.displaysAsynchronously = false
|
||||||
|
|
||||||
|
self.nextPanelSubtitleNode = MultiScaleTextNode(stateKeys: [TitleNodeStateRegular, TitleNodeStateExpanded])
|
||||||
|
self.nextPanelSubtitleNode.displaysAsynchronously = false
|
||||||
|
|
||||||
self.usernameNodeContainer = ASDisplayNode()
|
self.usernameNodeContainer = ASDisplayNode()
|
||||||
self.usernameNodeRawContainer = ASDisplayNode()
|
self.usernameNodeRawContainer = ASDisplayNode()
|
||||||
self.usernameNode = MultiScaleTextNode(stateKeys: [TitleNodeStateRegular, TitleNodeStateExpanded])
|
self.usernameNode = MultiScaleTextNode(stateKeys: [TitleNodeStateRegular, TitleNodeStateExpanded])
|
||||||
@ -2101,6 +2105,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
self.titleNodeContainer.addSubnode(self.titleNode)
|
self.titleNodeContainer.addSubnode(self.titleNode)
|
||||||
self.subtitleNodeContainer.addSubnode(self.subtitleNode)
|
self.subtitleNodeContainer.addSubnode(self.subtitleNode)
|
||||||
self.subtitleNodeContainer.addSubnode(self.panelSubtitleNode)
|
self.subtitleNodeContainer.addSubnode(self.panelSubtitleNode)
|
||||||
|
// self.subtitleNodeContainer.addSubnode(self.nextPanelSubtitleNode)
|
||||||
self.usernameNodeContainer.addSubnode(self.usernameNode)
|
self.usernameNodeContainer.addSubnode(self.usernameNode)
|
||||||
|
|
||||||
self.regularContentNode.addSubnode(self.avatarListNode)
|
self.regularContentNode.addSubnode(self.avatarListNode)
|
||||||
@ -2367,6 +2372,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
let smallSubtitleString: NSAttributedString
|
let smallSubtitleString: NSAttributedString
|
||||||
let subtitleString: NSAttributedString
|
let subtitleString: NSAttributedString
|
||||||
var panelSubtitleString: NSAttributedString?
|
var panelSubtitleString: NSAttributedString?
|
||||||
|
var nextPanelSubtitleString: NSAttributedString?
|
||||||
let usernameString: NSAttributedString
|
let usernameString: NSAttributedString
|
||||||
if let peer = peer {
|
if let peer = peer {
|
||||||
isVerified = peer.isVerified
|
isVerified = peer.isVerified
|
||||||
@ -2415,7 +2421,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
subtitleString = NSAttributedString(string: statusData.text, font: Font.regular(17.0), textColor: subtitleColor)
|
subtitleString = NSAttributedString(string: statusData.text, font: Font.regular(17.0), textColor: subtitleColor)
|
||||||
usernameString = NSAttributedString(string: "", font: Font.regular(15.0), textColor: presentationData.theme.list.itemSecondaryTextColor)
|
usernameString = NSAttributedString(string: "", font: Font.regular(15.0), textColor: presentationData.theme.list.itemSecondaryTextColor)
|
||||||
|
|
||||||
let (maybePanelStatusData, _, _) = panelStatusData
|
let (maybePanelStatusData, maybeNextPanelStatusData, _) = panelStatusData
|
||||||
if let panelStatusData = maybePanelStatusData {
|
if let panelStatusData = maybePanelStatusData {
|
||||||
let subtitleColor: UIColor
|
let subtitleColor: UIColor
|
||||||
if panelStatusData.isActivity {
|
if panelStatusData.isActivity {
|
||||||
@ -2425,6 +2431,9 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
panelSubtitleString = NSAttributedString(string: panelStatusData.text, font: Font.regular(17.0), textColor: subtitleColor)
|
panelSubtitleString = NSAttributedString(string: panelStatusData.text, font: Font.regular(17.0), textColor: subtitleColor)
|
||||||
}
|
}
|
||||||
|
if let nextPanelStatusData = maybeNextPanelStatusData {
|
||||||
|
nextPanelSubtitleString = NSAttributedString(string: nextPanelStatusData.text, font: Font.regular(17.0), textColor: presentationData.theme.list.itemSecondaryTextColor)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
subtitleString = NSAttributedString(string: " ", font: Font.regular(15.0), textColor: presentationData.theme.list.itemSecondaryTextColor)
|
subtitleString = NSAttributedString(string: " ", font: Font.regular(15.0), textColor: presentationData.theme.list.itemSecondaryTextColor)
|
||||||
smallSubtitleString = subtitleString
|
smallSubtitleString = subtitleString
|
||||||
@ -2477,6 +2486,14 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
], mainState: TitleNodeStateRegular)
|
], mainState: TitleNodeStateRegular)
|
||||||
self.panelSubtitleNode.accessibilityLabel = (panelSubtitleString ?? subtitleString).string
|
self.panelSubtitleNode.accessibilityLabel = (panelSubtitleString ?? subtitleString).string
|
||||||
|
|
||||||
|
let nextPanelSubtitleNodeLayout = self.nextPanelSubtitleNode.updateLayout(states: [
|
||||||
|
TitleNodeStateRegular: MultiScaleTextState(attributedText: nextPanelSubtitleString ?? subtitleString, constrainedSize: titleConstrainedSize),
|
||||||
|
TitleNodeStateExpanded: MultiScaleTextState(attributedText: nextPanelSubtitleString ?? subtitleString, constrainedSize: titleConstrainedSize)
|
||||||
|
], mainState: TitleNodeStateRegular)
|
||||||
|
if let _ = nextPanelSubtitleString {
|
||||||
|
self.nextPanelSubtitleNode.isHidden = false
|
||||||
|
}
|
||||||
|
|
||||||
let usernameNodeLayout = self.usernameNode.updateLayout(states: [
|
let usernameNodeLayout = self.usernameNode.updateLayout(states: [
|
||||||
TitleNodeStateRegular: MultiScaleTextState(attributedText: usernameString, constrainedSize: CGSize(width: titleConstrainedSize.width, height: titleConstrainedSize.height)),
|
TitleNodeStateRegular: MultiScaleTextState(attributedText: usernameString, constrainedSize: CGSize(width: titleConstrainedSize.width, height: titleConstrainedSize.height)),
|
||||||
TitleNodeStateExpanded: MultiScaleTextState(attributedText: usernameString, constrainedSize: CGSize(width: width - titleNodeLayout[TitleNodeStateExpanded]!.size.width - 8.0, height: titleConstrainedSize.height))
|
TitleNodeStateExpanded: MultiScaleTextState(attributedText: usernameString, constrainedSize: CGSize(width: width - titleNodeLayout[TitleNodeStateExpanded]!.size.width - 8.0, height: titleConstrainedSize.height))
|
||||||
@ -2490,6 +2507,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
let titleExpandedSize = titleNodeLayout[TitleNodeStateExpanded]!.size
|
let titleExpandedSize = titleNodeLayout[TitleNodeStateExpanded]!.size
|
||||||
let subtitleSize = subtitleNodeLayout[TitleNodeStateRegular]!.size
|
let subtitleSize = subtitleNodeLayout[TitleNodeStateRegular]!.size
|
||||||
let _ = panelSubtitleNodeLayout[TitleNodeStateRegular]!.size
|
let _ = panelSubtitleNodeLayout[TitleNodeStateRegular]!.size
|
||||||
|
let _ = nextPanelSubtitleNodeLayout[TitleNodeStateRegular]!.size
|
||||||
let usernameSize = usernameNodeLayout[TitleNodeStateRegular]!.size
|
let usernameSize = usernameNodeLayout[TitleNodeStateRegular]!.size
|
||||||
|
|
||||||
if let image = self.titleCredibilityIconNode.image {
|
if let image = self.titleCredibilityIconNode.image {
|
||||||
@ -2596,6 +2614,11 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
TitleNodeStateExpanded: self.isAvatarExpanded ? 1.0 : 0.0
|
TitleNodeStateExpanded: self.isAvatarExpanded ? 1.0 : 0.0
|
||||||
], alpha: panelSubtitleAlpha, transition: transition)
|
], alpha: panelSubtitleAlpha, transition: transition)
|
||||||
|
|
||||||
|
self.nextPanelSubtitleNode.update(stateFractions: [
|
||||||
|
TitleNodeStateRegular: self.isAvatarExpanded ? 0.0 : 1.0,
|
||||||
|
TitleNodeStateExpanded: self.isAvatarExpanded ? 1.0 : 0.0
|
||||||
|
], alpha: panelSubtitleAlpha, transition: transition)
|
||||||
|
|
||||||
self.usernameNode.update(stateFractions: [
|
self.usernameNode.update(stateFractions: [
|
||||||
TitleNodeStateRegular: self.isAvatarExpanded ? 0.0 : 1.0,
|
TitleNodeStateRegular: self.isAvatarExpanded ? 0.0 : 1.0,
|
||||||
TitleNodeStateExpanded: self.isAvatarExpanded ? 1.0 : 0.0
|
TitleNodeStateExpanded: self.isAvatarExpanded ? 1.0 : 0.0
|
||||||
@ -2747,6 +2770,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
transition.updateFrameAdditiveToCenter(node: self.subtitleNodeContainer, frame: CGRect(origin: rawSubtitleFrame.center, size: CGSize()))
|
transition.updateFrameAdditiveToCenter(node: self.subtitleNodeContainer, frame: CGRect(origin: rawSubtitleFrame.center, size: CGSize()))
|
||||||
transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: subtitleOffset), size: CGSize()))
|
transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: subtitleOffset), size: CGSize()))
|
||||||
transition.updateFrame(node: self.panelSubtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: panelSubtitleOffset), size: CGSize()))
|
transition.updateFrame(node: self.panelSubtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: panelSubtitleOffset), size: CGSize()))
|
||||||
|
transition.updateFrame(node: self.nextPanelSubtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: panelSubtitleOffset), size: CGSize()))
|
||||||
transition.updateFrame(node: self.usernameNode, frame: CGRect(origin: CGPoint(), size: CGSize()))
|
transition.updateFrame(node: self.usernameNode, frame: CGRect(origin: CGPoint(), size: CGSize()))
|
||||||
transition.updateSublayerTransformScale(node: self.titleNodeContainer, scale: titleScale)
|
transition.updateSublayerTransformScale(node: self.titleNodeContainer, scale: titleScale)
|
||||||
transition.updateSublayerTransformScale(node: self.subtitleNodeContainer, scale: subtitleScale)
|
transition.updateSublayerTransformScale(node: self.subtitleNodeContainer, scale: subtitleScale)
|
||||||
@ -2789,6 +2813,7 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: subtitleOffset), size: CGSize()))
|
transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: subtitleOffset), size: CGSize()))
|
||||||
transition.updateFrame(node: self.panelSubtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: panelSubtitleOffset), size: CGSize()))
|
transition.updateFrame(node: self.panelSubtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: panelSubtitleOffset), size: CGSize()))
|
||||||
|
transition.updateFrame(node: self.nextPanelSubtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: panelSubtitleOffset), size: CGSize()))
|
||||||
transition.updateFrame(node: self.usernameNode, frame: CGRect(origin: CGPoint(), size: CGSize()))
|
transition.updateFrame(node: self.usernameNode, frame: CGRect(origin: CGPoint(), size: CGSize()))
|
||||||
transition.updateSublayerTransformScaleAdditive(node: self.titleNodeContainer, scale: titleScale)
|
transition.updateSublayerTransformScaleAdditive(node: self.titleNodeContainer, scale: titleScale)
|
||||||
transition.updateSublayerTransformScaleAdditive(node: self.subtitleNodeContainer, scale: subtitleScale)
|
transition.updateSublayerTransformScaleAdditive(node: self.subtitleNodeContainer, scale: subtitleScale)
|
||||||
|
@ -624,7 +624,7 @@ public final class WebAppController: ViewController, AttachmentContainable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@objc private func moreButtonPressed() {
|
@objc private func moreButtonPressed() {
|
||||||
self.moreButtonNode.action?(self.moreButtonNode.contextSourceNode, nil)
|
self.moreButtonNode.buttonPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc private func morePressed(node: ContextReferenceContentNode, gesture: ContextGesture?) {
|
@objc private func morePressed(node: ContextReferenceContentNode, gesture: ContextGesture?) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user