diff --git a/Random.txt b/Random.txt index fee1ef59cf..1b28f7d5d0 100644 --- a/Random.txt +++ b/Random.txt @@ -1 +1 @@ -da31f706ff299a64eb70ef55d5ac985b +689ecb2a0d0d76ad50bc8eec22be2951 diff --git a/Telegram/NotificationService/Sources/NotificationService.swift b/Telegram/NotificationService/Sources/NotificationService.swift index e76cb277f2..3e50ecf6e1 100644 --- a/Telegram/NotificationService/Sources/NotificationService.swift +++ b/Telegram/NotificationService/Sources/NotificationService.swift @@ -488,19 +488,22 @@ private struct NotificationContent: CustomStringConvertible { func generate() -> UNNotificationContent { var content = UNMutableNotificationContent() - if let isLockedMessage = self.isLockedMessage { - content.body = isLockedMessage - } else { - if let title = self.title { - content.title = title - } - if let subtitle = self.subtitle { - content.subtitle = subtitle - } - if let body = self.body { - content.body = body + if let title = self.title { + content.title = title + } + if let subtitle = self.subtitle { + content.subtitle = subtitle + } + if let body = self.body { + content.body = body + } + + if !content.title.isEmpty || !content.subtitle.isEmpty || !content.body.isEmpty { + if let isLockedMessage = self.isLockedMessage { + content.body = isLockedMessage } } + if let threadId = self.threadId { content.threadIdentifier = threadId } @@ -688,7 +691,7 @@ private final class NotificationServiceHandler { guard let strongSelf = self, let recordId = recordId else { Logger.shared.log("NotificationService \(episode)", "Couldn't find a matching decryption key") - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() @@ -710,7 +713,7 @@ private final class NotificationServiceHandler { guard let stateManager = stateManager else { Logger.shared.log("NotificationService \(episode)", "Didn't receive stateManager") - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() return @@ -720,7 +723,7 @@ private final class NotificationServiceHandler { strongSelf.notificationKeyDisposable.set((existingMasterNotificationsKey(postbox: stateManager.postbox) |> deliverOn(strongSelf.queue)).start(next: { notificationsKey in guard let strongSelf = self else { - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() @@ -729,7 +732,7 @@ private final class NotificationServiceHandler { guard let notificationsKey = notificationsKey else { Logger.shared.log("NotificationService \(episode)", "Didn't receive decryption key") - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() @@ -738,7 +741,7 @@ private final class NotificationServiceHandler { guard let decryptedPayload = decryptedNotificationPayload(key: notificationsKey, data: payloadData) else { Logger.shared.log("NotificationService \(episode)", "Couldn't decrypt payload") - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() @@ -747,7 +750,7 @@ private final class NotificationServiceHandler { guard let payloadJson = try? JSONSerialization.jsonObject(with: decryptedPayload, options: []) as? [String: Any] else { Logger.shared.log("NotificationService \(episode)", "Couldn't process payload as JSON") - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() @@ -840,7 +843,7 @@ private final class NotificationServiceHandler { action = .logout case "MESSAGE_MUTED": if let peerId = peerId { - action = .poll(peerId: peerId, content: NotificationContent(isLockedMessage: isLockedMessage)) + action = .poll(peerId: peerId, content: NotificationContent(isLockedMessage: nil)) } case "MESSAGE_DELETED": if let peerId = peerId { @@ -970,7 +973,7 @@ private final class NotificationServiceHandler { if #available(iOS 14.5, *), voiceCallSettings.enableSystemIntegration { Logger.shared.log("NotificationService \(episode)", "Will report voip notification") - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) CXProvider.reportNewIncomingVoIPPushPayload(voipPayload, completion: { error in @@ -993,7 +996,7 @@ private final class NotificationServiceHandler { case .logout: Logger.shared.log("NotificationService \(episode)", "Will logout") - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() case let .poll(peerId, initialContent): @@ -1249,7 +1252,7 @@ private final class NotificationServiceHandler { postbox: stateManager.postbox ) |> deliverOn(strongSelf.queue)).start(next: { value in - var content = NotificationContent(isLockedMessage: isLockedMessage) + var content = NotificationContent(isLockedMessage: nil) if isCurrentAccount { content.badge = Int(value.0) } @@ -1298,7 +1301,7 @@ private final class NotificationServiceHandler { postbox: stateManager.postbox ) |> deliverOn(strongSelf.queue)).start(next: { value in - var content = NotificationContent(isLockedMessage: isLockedMessage) + var content = NotificationContent(isLockedMessage: nil) if isCurrentAccount { content.badge = Int(value.0) } @@ -1325,7 +1328,7 @@ private final class NotificationServiceHandler { }) } } else { - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: nil) updateCurrentContent(content) completed() diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index ed9272f447..37cb896107 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -364,7 +364,7 @@ "Login.HaveNotReceivedCodeInternal" = "Haven't received the code?"; "Login.CodeSentSms" = "We have sent you an SMS with the code"; "Login.Code" = "Code"; -"Login.WillCallYou" = "Telegram will call you in %@"; +"Login.WillCallYou" = "You can request a voice call in %@"; "Login.CallRequestState2" = "Requesting a call from Telegram..."; "Login.CallRequestState3" = "Telegram dialed your number\n[Didn't get the code?]"; "Login.EmailNotConfiguredError" = "Please set up an email account."; @@ -2073,7 +2073,7 @@ "Login.CodeSentCall" = "We are calling your phone to dictate a code."; -"Login.WillSendSms" = "Telegram will send you an SMS in %@"; +"Login.WillSendSms" = "You can request an SMS in %@"; "Login.SmsRequestState2" = "Requesting an SMS from Telegram..."; "Login.SmsRequestState3" = "Telegram sent you an SMS\n[Didn't get the code?]"; @@ -3764,8 +3764,9 @@ Unused sets are archived when you add more."; "AuthCode.Alert" = "Your login code is %@. Enter it in the Telegram app where you are trying to log in.\n\nDo not give this code to anyone."; "Login.CheckOtherSessionMessages" = "Check your Telegram messages"; -"Login.SendCodeViaSms" = "Send the code as an SMS"; -"Login.SendCodeViaCall" = "Get code on my phone"; +"Login.SendCodeViaSms" = "Get the code via SMS"; +"Login.SendCodeViaCall" = "Call me to dictate the code"; +"Login.SendCodeViaFlashCall" = "Get the code via phone call"; "Login.CancelPhoneVerification" = "Do you want to stop the phone number verification process?"; "Login.CancelPhoneVerificationStop" = "Stop"; "Login.CancelPhoneVerificationContinue" = "Continue"; @@ -7121,6 +7122,7 @@ Sorry for the inconvenience."; "ForcedPasswordSetup.Intro.DismissActionCancel" = "No, let me set a password"; "ForcedPasswordSetup.Intro.DismissActionOK" = "Yes, I’m sure"; +"Login.ShortCallTitle" = "Within a few seconds you should\nreceive a short call from:"; "Login.CodePhonePatternInfoText" = "Please enter the last digits\nof the missed call number."; "Login.EnterMissingDigits" = "Enter the missing digits"; @@ -7141,3 +7143,5 @@ Sorry for the inconvenience."; "PeerInfo.QRCode.Title" = "QR Code"; "ChatList.Archive" = "Archive"; + +"ChatList.Archive" = "Archive"; diff --git a/submodules/AppLock/Sources/AppLock.swift b/submodules/AppLock/Sources/AppLock.swift index 94e973538b..2f8d668b27 100644 --- a/submodules/AppLock/Sources/AppLock.swift +++ b/submodules/AppLock/Sources/AppLock.swift @@ -11,6 +11,7 @@ import TelegramUIPreferences import ImageBlur import FastBlur import AppLockState +import PassKit private func isLocked(passcodeSettings: PresentationPasscodeSettings, state: LockState, isApplicationActive: Bool) -> Bool { if state.isManuallyLocked { @@ -204,6 +205,7 @@ public final class AppLockContextImpl: AppLockContext { strongSelf.passcodeController = passcodeController if let rootViewController = strongSelf.rootController { if let _ = rootViewController.presentedViewController as? UIActivityViewController { + } else if let _ = rootViewController.presentedViewController as? PKPaymentAuthorizationViewController { } else { rootViewController.dismiss(animated: false, completion: nil) } @@ -228,6 +230,7 @@ public final class AppLockContextImpl: AppLockContext { if let rootViewController = strongSelf.rootController { if let _ = rootViewController.presentedViewController as? UIActivityViewController { + } else if let _ = rootViewController.presentedViewController as? PKPaymentAuthorizationViewController { } else { rootViewController.dismiss(animated: false, completion: nil) } diff --git a/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift b/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift index fe71055aef..da9faf84d3 100644 --- a/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift +++ b/submodules/AuthorizationUI/Sources/AuthorizationOptionText.swift @@ -17,14 +17,14 @@ public func authorizationCurrentOptionText(_ type: SentAuthorizationCodeType, st case .missedCall: let body = MarkdownAttributeSet(font: Font.regular(16.0), textColor: primaryColor) let bold = MarkdownAttributeSet(font: Font.semibold(16.0), textColor: primaryColor) - return parseMarkdownIntoAttributedString("Within a few seconds you should\nreceive a short call from:", attributes: MarkdownAttributes(body: body, bold: bold, link: body, linkAttribute: { _ in nil }), textAlignment: .center) + return parseMarkdownIntoAttributedString(strings.Login_ShortCallTitle, attributes: MarkdownAttributes(body: body, bold: bold, link: body, linkAttribute: { _ in nil }), textAlignment: .center) case .call, .flashCall: return NSAttributedString(string: strings.ChangePhoneNumberCode_Called, font: Font.regular(16.0), textColor: primaryColor, paragraphAlignment: .center) } } public func authorizationNextOptionText(currentType: SentAuthorizationCodeType, nextType: AuthorizationCodeNextType?, timeout: Int32?, strings: PresentationStrings, primaryColor: UIColor, accentColor: UIColor) -> (NSAttributedString, Bool) { - if let nextType = nextType, let timeout = timeout { + if let nextType = nextType, let timeout = timeout, timeout > 0 { let minutes = timeout / 60 let seconds = timeout % 60 switch nextType { @@ -48,13 +48,24 @@ public func authorizationNextOptionText(currentType: SentAuthorizationCodeType, switch nextType { case .sms: return (NSAttributedString(string: strings.Login_SendCodeViaSms, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) - case .call, .flashCall, .missedCall: + case .call: return (NSAttributedString(string: strings.Login_SendCodeViaCall, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) + case .flashCall, .missedCall: + return (NSAttributedString(string: strings.Login_SendCodeViaFlashCall, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) case .none: return (NSAttributedString(string: strings.Login_HaveNotReceivedCodeInternal, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) } default: - return (NSAttributedString(string: strings.Login_HaveNotReceivedCodeInternal, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) + switch nextType { + case .sms: + return (NSAttributedString(string: strings.Login_SendCodeViaSms, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) + case .call: + return (NSAttributedString(string: strings.Login_SendCodeViaCall, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) + case .flashCall, .missedCall: + return (NSAttributedString(string: strings.Login_SendCodeViaFlashCall, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) + case .none: + return (NSAttributedString(string: strings.Login_HaveNotReceivedCodeInternal, font: Font.regular(16.0), textColor: accentColor, paragraphAlignment: .center), true) + } } } } diff --git a/submodules/CodeInputView/Sources/CodeInputView.swift b/submodules/CodeInputView/Sources/CodeInputView.swift index e8fe0e5571..6228e08a7f 100644 --- a/submodules/CodeInputView/Sources/CodeInputView.swift +++ b/submodules/CodeInputView/Sources/CodeInputView.swift @@ -75,7 +75,9 @@ public final class CodeInputView: ASDisplayNode, UITextFieldDelegate { } } - self.textNode.attributedText = NSAttributedString(string: text, font: Font.monospace(21.0), textColor: UIColor(argb: textColor)) + let fontSize: CGFloat = floor(21.0 * size.height / 28.0) + + self.textNode.attributedText = NSAttributedString(string: text, font: Font.monospace(fontSize), textColor: UIColor(argb: textColor)) let textSize = self.textNode.updateLayout(size) self.textNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - textSize.width) / 2.0), y: floorToScreenPixels((size.height - textSize.height) / 2.0)), size: textSize) @@ -224,12 +226,18 @@ public final class CodeInputView: ASDisplayNode, UITextFieldDelegate { self.textField.keyboardAppearance = .light } - let height: CGFloat = 28.0 + let height: CGFloat + if prefix.isEmpty { + height = 40.0 + } else { + height = 28.0 + } + self.prefixLabel.attributedText = NSAttributedString(string: prefix, font: Font.monospace(21.0), textColor: UIColor(argb: theme.foreground)) let prefixSize = self.prefixLabel.updateLayout(CGSize(width: width, height: 100.0)) let prefixSpacing: CGFloat = prefix.isEmpty ? 0.0 : 8.0 - let itemSize = CGSize(width: 25.0, height: height) + let itemSize = CGSize(width: floor(25.0 * height / 28.0), height: height) let itemSpacing: CGFloat = 5.0 let itemsWidth: CGFloat = itemSize.width * CGFloat(count) + itemSpacing * CGFloat(count - 1) diff --git a/submodules/TelegramUI/Sources/AuthorizationSequenceCodeEntryControllerNode.swift b/submodules/TelegramUI/Sources/AuthorizationSequenceCodeEntryControllerNode.swift index 698aa9262f..e283434ba3 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequenceCodeEntryControllerNode.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequenceCodeEntryControllerNode.swift @@ -18,11 +18,10 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF private let titleIconNode: ASImageNode private let currentOptionNode: ASTextNode private let currentOptionInfoNode: ASTextNode - private let nextOptionNode: HighlightableButtonNode + private let nextOptionTitleNode: ImmediateTextNode + private let nextOptionButtonNode: HighlightableButtonNode private let codeInputView: CodeInputView - //private let codeField: TextFieldNode - //private let codeSeparatorNode: ASDisplayNode private var codeType: SentAuthorizationCodeType? @@ -81,11 +80,14 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF self.currentOptionInfoNode.isUserInteractionEnabled = false self.currentOptionInfoNode.displaysAsynchronously = false - self.nextOptionNode = HighlightableButtonNode() - self.nextOptionNode.displaysAsynchronously = false + self.nextOptionTitleNode = ImmediateTextNode() + + self.nextOptionButtonNode = HighlightableButtonNode() + self.nextOptionButtonNode.displaysAsynchronously = false let (nextOptionText, nextOptionActive) = authorizationNextOptionText(currentType: .sms(length: 5), nextType: .call, timeout: 60, strings: self.strings, primaryColor: self.theme.list.itemPrimaryTextColor, accentColor: self.theme.list.itemAccentColor) - self.nextOptionNode.setAttributedTitle(nextOptionText, for: []) - self.nextOptionNode.isUserInteractionEnabled = nextOptionActive + self.nextOptionTitleNode.attributedText = nextOptionText + self.nextOptionButtonNode.isUserInteractionEnabled = nextOptionActive + self.nextOptionButtonNode.addSubnode(self.nextOptionTitleNode) /*self.codeSeparatorNode = ASDisplayNode() self.codeSeparatorNode.isLayerBacked = true @@ -125,7 +127,7 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF self.addSubnode(self.titleIconNode) self.addSubnode(self.currentOptionNode) self.addSubnode(self.currentOptionInfoNode) - self.addSubnode(self.nextOptionNode) + self.addSubnode(self.nextOptionButtonNode) self.codeInputView.updated = { [weak self] in guard let strongSelf = self else { @@ -139,7 +141,7 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF //self.codeField.textField.attributedPlaceholder = NSAttributedString(string: strings.Login_Code, font: Font.regular(24.0), textColor: self.theme.list.itemPlaceholderTextColor) - self.nextOptionNode.addTarget(self, action: #selector(self.nextOptionNodePressed), forControlEvents: .touchUpInside) + self.nextOptionButtonNode.addTarget(self, action: #selector(self.nextOptionNodePressed), forControlEvents: .touchUpInside) } deinit { @@ -182,21 +184,24 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF self.currentOptionInfoNode.attributedText = NSAttributedString(string: "", font: Font.regular(15.0), textColor: self.theme.list.itemPrimaryTextColor) } if let timeout = timeout { + #if DEBUG + let timeout = min(timeout, 5) + #endif self.currentTimeoutTime = timeout let disposable = ((Signal.single(1) |> delay(1.0, queue: Queue.mainQueue())) |> restart).start(next: { [weak self] _ in if let strongSelf = self { if let currentTimeoutTime = strongSelf.currentTimeoutTime, currentTimeoutTime > 0 { strongSelf.currentTimeoutTime = currentTimeoutTime - 1 - let (nextOptionText, nextOptionActive) = authorizationNextOptionText(currentType: codeType, nextType: nextType, timeout:strongSelf.currentTimeoutTime, strings: strongSelf.strings, primaryColor: strongSelf.theme.list.itemPrimaryTextColor, accentColor: strongSelf.theme.list.itemAccentColor) - strongSelf.nextOptionNode.setAttributedTitle(nextOptionText, for: []) - strongSelf.nextOptionNode.isUserInteractionEnabled = nextOptionActive + let (nextOptionText, nextOptionActive) = authorizationNextOptionText(currentType: codeType, nextType: nextType, timeout: strongSelf.currentTimeoutTime, strings: strongSelf.strings, primaryColor: strongSelf.theme.list.itemPrimaryTextColor, accentColor: strongSelf.theme.list.itemAccentColor) + strongSelf.nextOptionTitleNode.attributedText = nextOptionText + strongSelf.nextOptionButtonNode.isUserInteractionEnabled = nextOptionActive if let layoutArguments = strongSelf.layoutArguments { strongSelf.containerLayoutUpdated(layoutArguments.0, navigationBarHeight: layoutArguments.1, transition: .immediate) } - if currentTimeoutTime == 1 { + /*if currentTimeoutTime == 1 { strongSelf.requestNextOption?() - } + }*/ } } }) @@ -206,8 +211,12 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF self.countdownDisposable.set(nil) } let (nextOptionText, nextOptionActive) = authorizationNextOptionText(currentType: codeType, nextType: nextType, timeout: self.currentTimeoutTime, strings: self.strings, primaryColor: self.theme.list.itemPrimaryTextColor, accentColor: self.theme.list.itemAccentColor) - self.nextOptionNode.setAttributedTitle(nextOptionText, for: []) - self.nextOptionNode.isUserInteractionEnabled = nextOptionActive + self.nextOptionTitleNode.attributedText = nextOptionText + self.nextOptionButtonNode.isUserInteractionEnabled = nextOptionActive + + if let layoutArguments = self.layoutArguments { + self.containerLayoutUpdated(layoutArguments.0, navigationBarHeight: layoutArguments.1, transition: .immediate) + } } func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) { @@ -264,7 +273,7 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF let currentOptionSize = self.currentOptionNode.measure(CGSize(width: layout.size.width - 28.0, height: CGFloat.greatestFiniteMagnitude)) let currentOptionInfoSize = self.currentOptionInfoNode.measure(CGSize(width: layout.size.width - 28.0, height: CGFloat.greatestFiniteMagnitude)) - let nextOptionSize = self.nextOptionNode.measure(CGSize(width: layout.size.width, height: CGFloat.greatestFiniteMagnitude)) + let nextOptionSize = self.nextOptionTitleNode.updateLayout(CGSize(width: layout.size.width, height: CGFloat.greatestFiniteMagnitude)) let codeLength: Int var codePrefix: String = "" @@ -341,7 +350,7 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF //items.append(AuthorizationLayoutItem(node: self.codeField, size: CGSize(width: layout.size.width - 88.0, height: 44.0), spacingBefore: AuthorizationLayoutItemSpacing(weight: 40.0, maxValue: 100.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) //items.append(AuthorizationLayoutItem(node: self.codeSeparatorNode, size: CGSize(width: layout.size.width - 88.0, height: UIScreenPixel), spacingBefore: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) - items.append(AuthorizationLayoutItem(node: self.nextOptionNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) + items.append(AuthorizationLayoutItem(node: self.nextOptionButtonNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) case .missedCall: self.titleIconNode.isHidden = false @@ -369,7 +378,7 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF items.append(AuthorizationLayoutItem(node: self.currentOptionInfoNode, size: currentOptionInfoSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 60.0, maxValue: 100.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) - items.append(AuthorizationLayoutItem(node: self.nextOptionNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) + items.append(AuthorizationLayoutItem(node: self.nextOptionButtonNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) default: self.titleIconNode.isHidden = true items.append(AuthorizationLayoutItem(node: self.titleNode, size: titleSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) @@ -379,7 +388,7 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF /*items.append(AuthorizationLayoutItem(node: self.codeField, size: CGSize(width: layout.size.width - 88.0, height: 44.0), spacingBefore: AuthorizationLayoutItemSpacing(weight: 40.0, maxValue: 100.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) items.append(AuthorizationLayoutItem(node: self.codeSeparatorNode, size: CGSize(width: layout.size.width - 88.0, height: UIScreenPixel), spacingBefore: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0)))*/ - items.append(AuthorizationLayoutItem(node: self.nextOptionNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) + items.append(AuthorizationLayoutItem(node: self.nextOptionButtonNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) } } else { self.titleIconNode.isHidden = true @@ -390,10 +399,12 @@ final class AuthorizationSequenceCodeEntryControllerNode: ASDisplayNode, UITextF /*items.append(AuthorizationLayoutItem(node: self.codeField, size: CGSize(width: layout.size.width - 88.0, height: 44.0), spacingBefore: AuthorizationLayoutItemSpacing(weight: 40.0, maxValue: 100.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) items.append(AuthorizationLayoutItem(node: self.codeSeparatorNode, size: CGSize(width: layout.size.width - 88.0, height: UIScreenPixel), spacingBefore: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0)))*/ - items.append(AuthorizationLayoutItem(node: self.nextOptionNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) + items.append(AuthorizationLayoutItem(node: self.nextOptionButtonNode, size: nextOptionSize, spacingBefore: AuthorizationLayoutItemSpacing(weight: 50.0, maxValue: 120.0), spacingAfter: AuthorizationLayoutItemSpacing(weight: 0.0, maxValue: 0.0))) } let _ = layoutAuthorizationItems(bounds: CGRect(origin: CGPoint(x: 0.0, y: insets.top), size: CGSize(width: layout.size.width, height: layout.size.height - insets.top - insets.bottom - 20.0)), items: items, transition: transition, failIfDoesNotFit: false) + + self.nextOptionTitleNode.frame = self.nextOptionButtonNode.bounds } func activateInput() { diff --git a/versions.json b/versions.json index 9c82469a48..f4351a4b04 100644 --- a/versions.json +++ b/versions.json @@ -1,5 +1,5 @@ { - "app": "8.3", + "app": "8.3.1", "bazel": "4.0.0", "xcode": "13.1" }