mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-08 05:30:47 +00:00
Fix QR auth layout
This commit is contained in:
parent
d0f1dc5dad
commit
f3700a133a
@ -90,8 +90,8 @@ private final class AuthDataTransferSplashScreenNode: ViewControllerTracingNode
|
|||||||
|
|
||||||
let buttonText: String
|
let buttonText: String
|
||||||
|
|
||||||
let badgeFont = Font.with(size: 14.0, design: .round, traits: [.bold])
|
let badgeFont = Font.with(size: 13.0, design: .round, traits: [.bold])
|
||||||
let textFont = Font.regular(18.0)
|
let textFont = Font.regular(16.0)
|
||||||
let textColor = self.presentationData.theme.list.itemPrimaryTextColor
|
let textColor = self.presentationData.theme.list.itemPrimaryTextColor
|
||||||
|
|
||||||
var badgeBackgroundNodes: [ASImageNode] = []
|
var badgeBackgroundNodes: [ASImageNode] = []
|
||||||
@ -147,7 +147,7 @@ private final class AuthDataTransferSplashScreenNode: ViewControllerTracingNode
|
|||||||
|
|
||||||
self.titleNode = ImmediateTextNode()
|
self.titleNode = ImmediateTextNode()
|
||||||
self.titleNode.displaysAsynchronously = false
|
self.titleNode.displaysAsynchronously = false
|
||||||
self.titleNode.attributedText = NSAttributedString(string: self.presentationData.strings.AuthSessions_AddDeviceIntro_Title, font: Font.bold(28.0), textColor: self.presentationData.theme.list.itemPrimaryTextColor)
|
self.titleNode.attributedText = NSAttributedString(string: self.presentationData.strings.AuthSessions_AddDeviceIntro_Title, font: Font.bold(24.0), textColor: self.presentationData.theme.list.itemPrimaryTextColor)
|
||||||
self.titleNode.maximumNumberOfLines = 0
|
self.titleNode.maximumNumberOfLines = 0
|
||||||
self.titleNode.textAlignment = .center
|
self.titleNode.textAlignment = .center
|
||||||
|
|
||||||
@ -198,14 +198,14 @@ private final class AuthDataTransferSplashScreenNode: ViewControllerTracingNode
|
|||||||
|
|
||||||
let sideInset: CGFloat = 22.0
|
let sideInset: CGFloat = 22.0
|
||||||
let textSideInset: CGFloat = 54.0
|
let textSideInset: CGFloat = 54.0
|
||||||
let buttonSideInset: CGFloat = 48.0
|
let buttonSideInset: CGFloat = 16.0
|
||||||
let titleSpacing: CGFloat = 30.0
|
let titleSpacing: CGFloat = 25.0
|
||||||
let buttonHeight: CGFloat = 50.0
|
let buttonHeight: CGFloat = 50.0
|
||||||
let buttonSpacing: CGFloat = 10.0
|
let buttonSpacing: CGFloat = 16.0
|
||||||
let textSpacing: CGFloat = 26.0
|
let textSpacing: CGFloat = 25.0
|
||||||
let badgeSize: CGFloat = 20.0
|
let badgeSize: CGFloat = 20.0
|
||||||
|
|
||||||
let animationFitSize = CGSize(width: min(500.0, layout.size.width - sideInset), height: 500.0)
|
let animationFitSize = CGSize(width: min(500.0, layout.size.width - sideInset + 20.0), height: 500.0)
|
||||||
let animationSize = self.animationNode.preferredSize()?.fitted(animationFitSize) ?? animationFitSize
|
let animationSize = self.animationNode.preferredSize()?.fitted(animationFitSize) ?? animationFitSize
|
||||||
let iconSize: CGSize = animationSize
|
let iconSize: CGSize = animationSize
|
||||||
var iconOffset = CGPoint()
|
var iconOffset = CGPoint()
|
||||||
@ -233,7 +233,7 @@ private final class AuthDataTransferSplashScreenNode: ViewControllerTracingNode
|
|||||||
let contentTopInset = navigationHeight
|
let contentTopInset = navigationHeight
|
||||||
let contentBottomInset = bottomInset + buttonHeight + buttonSpacing
|
let contentBottomInset = bottomInset + buttonHeight + buttonSpacing
|
||||||
|
|
||||||
let iconSpacing: CGFloat = max(20.0, min(64.0, layout.size.height - contentTopInset - contentBottomInset - contentHeight - 40.0))
|
let iconSpacing: CGFloat = max(20.0, min(61.0, layout.size.height - contentTopInset - contentBottomInset - contentHeight - 40.0))
|
||||||
|
|
||||||
contentHeight += iconSpacing
|
contentHeight += iconSpacing
|
||||||
|
|
||||||
@ -269,10 +269,17 @@ private final class AuthDataTransferSplashScreenNode: ViewControllerTracingNode
|
|||||||
let textFrame = CGRect(origin: CGPoint(x: textSideInset, y: contentY), size: textSize)
|
let textFrame = CGRect(origin: CGPoint(x: textSideInset, y: contentY), size: textSize)
|
||||||
transition.updateFrameAdditive(node: self.textNodes[i], frame: textFrame)
|
transition.updateFrameAdditive(node: self.textNodes[i], frame: textFrame)
|
||||||
|
|
||||||
let badgeFrame = CGRect(origin: CGPoint(x: sideInset, y: textFrame.minY + floor((textFrame.height - badgeSize) / 2.0)), size: CGSize(width: badgeSize, height: badgeSize))
|
let badgeFrame = CGRect(origin: CGPoint(x: sideInset, y: textFrame.minY), size: CGSize(width: badgeSize, height: badgeSize))
|
||||||
transition.updateFrameAdditive(node: self.badgeBackgroundNodes[i], frame: badgeFrame)
|
transition.updateFrameAdditive(node: self.badgeBackgroundNodes[i], frame: badgeFrame)
|
||||||
|
|
||||||
transition.updateFrameAdditive(node: self.badgeTextNodes[i], frame: CGRect(origin: CGPoint(x: badgeFrame.minX + floor((badgeFrame.width - badgeTextSize.width) / 2.0) + 0.5, y: badgeFrame.minY + floor((badgeFrame.height - badgeTextSize.height) / 2.0) + 0.5), size: badgeTextSize))
|
let badgeTextOffsetX: CGFloat
|
||||||
|
if i == 0 {
|
||||||
|
badgeTextOffsetX = 0.5
|
||||||
|
} else {
|
||||||
|
badgeTextOffsetX = 1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
transition.updateFrameAdditive(node: self.badgeTextNodes[i], frame: CGRect(origin: CGPoint(x: badgeFrame.minX + floor((badgeFrame.width - badgeTextSize.width) / 2.0) + badgeTextOffsetX, y: badgeFrame.minY + floor((badgeFrame.height - badgeTextSize.height) / 2.0) + 0.5), size: badgeTextSize))
|
||||||
|
|
||||||
contentY += textSize.height
|
contentY += textSize.height
|
||||||
}
|
}
|
||||||
|
@ -274,7 +274,7 @@ private final class AuthTransferScanScreenNode: ViewControllerTracingNode, UIScr
|
|||||||
self.errorTextNode.attributedText = NSAttributedString(string: presentationData.strings.AuthSessions_AddDevice_InvalidQRCode, font: Font.medium(16.0), textColor: .white)
|
self.errorTextNode.attributedText = NSAttributedString(string: presentationData.strings.AuthSessions_AddDevice_InvalidQRCode, font: Font.medium(16.0), textColor: .white)
|
||||||
self.errorTextNode.maximumNumberOfLines = 0
|
self.errorTextNode.maximumNumberOfLines = 0
|
||||||
self.errorTextNode.textAlignment = .center
|
self.errorTextNode.textAlignment = .center
|
||||||
//self.errorTextNode.isHidden = true
|
self.errorTextNode.isHidden = true
|
||||||
|
|
||||||
self.camera = Camera(configuration: .init(preset: .hd1920x1080, position: .back, audio: false))
|
self.camera = Camera(configuration: .init(preset: .hd1920x1080, position: .back, audio: false))
|
||||||
|
|
||||||
@ -409,19 +409,28 @@ private final class AuthTransferScanScreenNode: ViewControllerTracingNode, UIScr
|
|||||||
transition.updateFrame(node: self.centerDimNode, frame: dimRect)
|
transition.updateFrame(node: self.centerDimNode, frame: dimRect)
|
||||||
|
|
||||||
let buttonSize = CGSize(width: 72.0, height: 72.0)
|
let buttonSize = CGSize(width: 72.0, height: 72.0)
|
||||||
transition.updateFrame(node: self.torchButtonNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - buttonSize.width) / 2.0), y: dimHeight + frameSide + 98.0), size: buttonSize))
|
var torchFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - buttonSize.width) / 2.0), y: dimHeight + frameSide + 98.0), size: buttonSize)
|
||||||
|
let updatedTorchY = min(torchFrame.minY, layout.size.height - torchFrame.height - 10.0)
|
||||||
|
let additionalTorchOffset: CGFloat = updatedTorchY - torchFrame.minY
|
||||||
|
torchFrame.origin.y = updatedTorchY
|
||||||
|
transition.updateFrame(node: self.torchButtonNode, frame: torchFrame)
|
||||||
|
|
||||||
transition.updateAlpha(node: self.titleNode, alpha: controlsAlpha)
|
|
||||||
transition.updateAlpha(node: self.textNode, alpha: controlsAlpha)
|
transition.updateAlpha(node: self.textNode, alpha: controlsAlpha)
|
||||||
transition.updateAlpha(node: self.errorTextNode, alpha: controlsAlpha)
|
transition.updateAlpha(node: self.errorTextNode, alpha: controlsAlpha)
|
||||||
transition.updateAlpha(node: self.torchButtonNode, alpha: controlsAlpha)
|
transition.updateAlpha(node: self.torchButtonNode, alpha: controlsAlpha)
|
||||||
|
|
||||||
let titleSize = self.titleNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height))
|
let titleSize = self.titleNode.updateLayout(CGSize(width: layout.size.width - 16.0, height: layout.size.height))
|
||||||
let textSize = self.textNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height))
|
let textSize = self.textNode.updateLayout(CGSize(width: layout.size.width - 16.0, height: layout.size.height))
|
||||||
let errorTextSize = self.errorTextNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height))
|
let errorTextSize = self.errorTextNode.updateLayout(CGSize(width: layout.size.width - 16.0, height: layout.size.height))
|
||||||
let textFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - textSize.width) / 2.0), y: dimHeight - textSize.height - titleSpacing), size: textSize)
|
let textFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - textSize.width) / 2.0), y: dimHeight - textSize.height - titleSpacing), size: textSize)
|
||||||
let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: textFrame.minY - 18.0 - titleSize.height), size: titleSize)
|
let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: textFrame.minY - 18.0 - titleSize.height), size: titleSize)
|
||||||
let errorTextFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - errorTextSize.width) / 2.0), y: dimHeight + frameSide + 48.0), size: errorTextSize)
|
var errorTextFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - errorTextSize.width) / 2.0), y: dimHeight + frameSide + 48.0), size: errorTextSize)
|
||||||
|
errorTextFrame.origin.y += floor(additionalTorchOffset / 2.0)
|
||||||
|
if titleFrame.minY < navigationHeight {
|
||||||
|
transition.updateAlpha(node: self.titleNode, alpha: 0.0)
|
||||||
|
} else {
|
||||||
|
transition.updateAlpha(node: self.titleNode, alpha: controlsAlpha)
|
||||||
|
}
|
||||||
transition.updateFrameAdditive(node: self.titleNode, frame: titleFrame)
|
transition.updateFrameAdditive(node: self.titleNode, frame: titleFrame)
|
||||||
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
|
transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
|
||||||
transition.updateFrameAdditive(node: self.errorTextNode, frame: errorTextFrame)
|
transition.updateFrameAdditive(node: self.errorTextNode, frame: errorTextFrame)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user