Debugging

This commit is contained in:
Ali
2023-09-25 19:47:44 +04:00
parent bdf1909eb7
commit d892e030e0
18 changed files with 110 additions and 102 deletions

View File

@@ -82,7 +82,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
}
|> distinctUntilChanged
|> deliverOnMainQueue).start(next: { [weak self] state in
|> deliverOnMainQueue).startStrict(next: { [weak self] state in
self?.updateState(state: state)
}).strict()
}
@@ -124,7 +124,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
let countryCode = AuthorizationSequenceController.defaultCountryCode()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: isTestingEnvironment, masterDatacenterId: masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: isTestingEnvironment, masterDatacenterId: masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).startStandalone()
}
}
}
@@ -152,9 +152,9 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
if !strongSelf.otherAccountPhoneNumbers.1.isEmpty {
let _ = (strongSelf.sharedContext.accountManager.transaction { transaction -> Void in
transaction.removeAuth()
}).start()
}).startStandalone()
} else {
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .empty)).startStandalone()
}
})
if let splashController = splashController {
@@ -175,14 +175,14 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
|> take(1)
|> timeout(2.0, queue: .mainQueue(), alternate: .single(nil))
let _ = (authorizationPushConfiguration
|> deliverOnMainQueue).start(next: { [weak self] authorizationPushConfiguration in
|> deliverOnMainQueue).startStandalone(next: { [weak self] authorizationPushConfiguration in
if let strongSelf = self {
strongSelf.actionDisposable.set((sendAuthorizationCode(accountManager: strongSelf.sharedContext.accountManager, account: strongSelf.account, phoneNumber: number, apiId: strongSelf.apiId, apiHash: strongSelf.apiHash, pushNotificationConfiguration: authorizationPushConfiguration, firebaseSecretStream: strongSelf.sharedContext.firebaseSecretStream, syncContacts: syncContacts, forcedPasswordSetupNotice: { value in
guard let entry = CodableEntry(ApplicationSpecificCounterNotice(value: value)) else {
return nil
}
return (ApplicationSpecificNotice.forcedPasswordSetupKey(), entry)
}) |> deliverOnMainQueue).start(next: { [weak self] result in
}) |> deliverOnMainQueue).startStrict(next: { [weak self] result in
if let strongSelf = self {
switch result {
case let .sentCode(account):
@@ -312,12 +312,12 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
let countryCode = AuthorizationSequenceController.defaultCountryCode()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).startStandalone()
})
controller.retryResetEmail = { [weak self] in
if let self {
self.actionDisposable.set(
resetLoginEmail(account: self.account, phoneNumber: number, phoneCodeHash: phoneCodeHash).start()
resetLoginEmail(account: self.account, phoneNumber: number, phoneCodeHash: phoneCodeHash).startStandalone()
)
}
}
@@ -328,7 +328,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
if let _ = resetPendingDate {
self.actionDisposable.set(
(resetLoginEmail(account: self.account, phoneNumber: number, phoneCodeHash: phoneCodeHash)
|> deliverOnMainQueue).start(error: { [weak self] error in
|> deliverOnMainQueue).startStrict(error: { [weak self] error in
if let self, case .alreadyInProgress = error {
let formattedNumber = formatPhoneNumber(number)
let title = NSAttributedString(string: self.presentationData.strings.Login_Email_PremiumRequiredTitle, font: Font.semibold(self.presentationData.listsFontSize.baseDisplaySize), textColor: self.presentationData.theme.actionSheet.primaryTextColor)
@@ -342,7 +342,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
} else if let resetAvailablePeriod {
if resetAvailablePeriod == 0 {
self.actionDisposable.set(
resetLoginEmail(account: self.account, phoneNumber: number, phoneCodeHash: phoneCodeHash).start()
resetLoginEmail(account: self.account, phoneNumber: number, phoneCodeHash: phoneCodeHash).startStrict()
)
} else {
let pattern = pattern.replacingOccurrences(of: "*", with: "#")
@@ -362,7 +362,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
self.actionDisposable.set(
(resetLoginEmail(account: self.account, phoneNumber: number, phoneCodeHash: phoneCodeHash)
|> deliverOnMainQueue).start(error: { [weak self] error in
|> deliverOnMainQueue).startStrict(error: { [weak self] error in
Queue.mainQueue().async {
guard let self, let controller = controller else {
return
@@ -378,7 +378,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
case .codeExpired:
text = self.presentationData.strings.Login_CodeExpired
let account = self.account
let _ = TelegramEngineUnauthorized(account: self.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: self.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).startStandalone()
}
controller.presentInGlobalOverlay(standardTextAlertController(theme: AlertControllerTheme(presentationData: self.presentationData), title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_OK, action: {})]))
@@ -405,7 +405,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
if case let .email(_, _, _, _, _, setup) = type, setup, case let .emailVerification(emailCode) = authorizationCode {
strongSelf.actionDisposable.set(((verifyLoginEmailSetup(account: strongSelf.account, code: emailCode))
|> deliverOnMainQueue).start(error: { error in
|> deliverOnMainQueue).startStrict(error: { error in
Queue.mainQueue().async {
if let strongSelf = self, let controller = controller {
controller.inProgress = false
@@ -427,7 +427,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
case .codeExpired:
text = strongSelf.presentationData.strings.Login_CodeExpired
let account = strongSelf.account
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).startStandalone()
case .timeout:
text = strongSelf.presentationData.strings.Login_NetworkError
case .invalidEmailToken:
@@ -452,7 +452,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
return (ApplicationSpecificNotice.forcedPasswordSetupKey(), entry)
})
|> deliverOnMainQueue).start(next: { result in
|> deliverOnMainQueue).startStrict(next: { result in
guard let strongSelf = self else {
return
}
@@ -474,7 +474,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
guard let strongSelf = self else {
return
}
let _ = beginSignUp(account: strongSelf.account, data: data).start()
let _ = beginSignUp(account: strongSelf.account, data: data).startStandalone()
}), TextAlertAction(type: .genericAction, title: strongSelf.presentationData.strings.Login_TermsOfServiceDecline, action: {
dismissImpl?()
guard let strongSelf = self else {
@@ -487,7 +487,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
return
}
let account = strongSelf.account
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).startStandalone()
})]), on: .root, blockInteraction: false, completion: {})
})
], actionLayout: .vertical, dismissOnOutsideTap: true)
@@ -508,7 +508,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
presentAlertImpl()
} else {
let _ = beginSignUp(account: strongSelf.account, data: data).start()
let _ = beginSignUp(account: strongSelf.account, data: data).startStandalone()
}
case .loggedIn:
controller?.animateSuccess()
@@ -535,7 +535,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
case .codeExpired:
text = strongSelf.presentationData.strings.Login_CodeExpired
let account = strongSelf.account
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).startStandalone()
case .invalidEmailToken:
text = strongSelf.presentationData.strings.Login_InvalidEmailTokenError
case .invalidEmailAddress:
@@ -582,7 +582,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
} else {
controller?.inProgress = true
strongSelf.actionDisposable.set((resendAuthorizationCode(accountManager: strongSelf.sharedContext.accountManager, account: strongSelf.account, apiId: strongSelf.apiId, apiHash: strongSelf.apiHash, firebaseSecretStream: strongSelf.sharedContext.firebaseSecretStream)
|> deliverOnMainQueue).start(next: { result in
|> deliverOnMainQueue).startStrict(next: { result in
controller?.inProgress = false
}, error: { error in
if let strongSelf = self, let controller = controller {
@@ -622,7 +622,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
controller.reset = { [weak self] in
if let strongSelf = self {
let account = strongSelf.account
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).startStandalone()
}
}
controller.signInWithApple = { [weak self] in
@@ -674,7 +674,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
let countryCode = AuthorizationSequenceController.defaultCountryCode()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).startStandalone()
})
}
controller.proceedWithEmail = { [weak self, weak controller] email in
@@ -687,7 +687,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
strongSelf.currentEmail = email
strongSelf.actionDisposable.set((sendLoginEmailCode(account: strongSelf.account, email: email)
|> deliverOnMainQueue).start(error: { error in
|> deliverOnMainQueue).startStrict(error: { error in
if let strongSelf = self, let controller = controller {
controller.inProgress = false
@@ -747,7 +747,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
if self.signInWithAppleSetup {
self.actionDisposable.set((verifyLoginEmailSetup(account: self.account, code: .appleToken(token))
|> deliverOnMainQueue).start(error: { [weak self, weak lastController] error in
|> deliverOnMainQueue).startStrict(error: { [weak self, weak lastController] error in
if let strongSelf = self, let lastController = lastController {
let text: String
switch error {
@@ -774,13 +774,13 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
return nil
}
return (ApplicationSpecificNotice.forcedPasswordSetupKey(), entry)
}).start(next: { [weak self] result in
}).startStrict(next: { [weak self] result in
guard let strongSelf = self else {
return
}
switch result {
case let .signUp(data):
let _ = beginSignUp(account: strongSelf.account, data: data).start()
let _ = beginSignUp(account: strongSelf.account, data: data).startStandalone()
case .loggedIn:
break
}
@@ -798,7 +798,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
case .codeExpired:
text = strongSelf.presentationData.strings.Login_CodeExpired
let account = strongSelf.account
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).startStandalone()
case .invalidEmailToken:
text = strongSelf.presentationData.strings.Login_InvalidEmailTokenError
case .invalidEmailAddress:
@@ -839,13 +839,13 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
let countryCode = AuthorizationSequenceController.defaultCountryCode()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).startStandalone()
})
controller.loginWithPassword = { [weak self, weak controller] password in
if let strongSelf = self {
controller?.inProgress = true
strongSelf.actionDisposable.set((authorizeWithPassword(accountManager: strongSelf.sharedContext.accountManager, account: strongSelf.account, password: password, syncContacts: syncContacts) |> deliverOnMainQueue).start(error: { error in
strongSelf.actionDisposable.set((authorizeWithPassword(accountManager: strongSelf.sharedContext.accountManager, account: strongSelf.account, password: password, syncContacts: syncContacts) |> deliverOnMainQueue).startStrict(error: { error in
Queue.mainQueue().async {
if let strongSelf = self, let controller = controller {
controller.inProgress = false
@@ -872,18 +872,18 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
if let strongSelf = self, let strongController = controller {
strongController.inProgress = true
strongSelf.actionDisposable.set((TelegramEngineUnauthorized(account: strongSelf.account).auth.requestTwoStepVerificationPasswordRecoveryCode()
|> deliverOnMainQueue).start(next: { pattern in
|> deliverOnMainQueue).startStrict(next: { pattern in
if let strongSelf = self, let strongController = controller {
strongController.inProgress = false
let _ = (TelegramEngineUnauthorized(account: strongSelf.account).auth.state()
|> take(1)
|> deliverOnMainQueue).start(next: { state in
|> deliverOnMainQueue).startStandalone(next: { state in
guard let strongSelf = self else {
return
}
if case let .unauthorized(state) = state, case let .passwordEntry(hint, number, code, _, syncContacts) = state.contents {
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .passwordRecovery(hint: hint, number: number, code: code, emailPattern: pattern, syncContacts: syncContacts))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .passwordRecovery(hint: hint, number: number, code: code, emailPattern: pattern, syncContacts: syncContacts))).startStandalone()
}
})
}
@@ -907,7 +907,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
if let strongSelf = self, let strongController = controller {
strongController.inProgress = true
strongSelf.actionDisposable.set((performAccountReset(account: strongSelf.account)
|> deliverOnMainQueue).start(next: {
|> deliverOnMainQueue).startStrict(next: {
if let strongController = controller {
strongController.inProgress = false
}
@@ -954,12 +954,12 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
let _ = (TelegramEngineUnauthorized(account: strongSelf.account).auth.state()
|> take(1)
|> deliverOnMainQueue).start(next: { state in
|> deliverOnMainQueue).startStandalone(next: { state in
guard let strongSelf = self else {
return
}
if case let .unauthorized(state) = state, case let .passwordRecovery(hint, number, code, _, syncContacts) = state.contents {
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .passwordEntry(hint: hint, number: number, code: code, suggestReset: true, syncContacts: syncContacts))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .passwordEntry(hint: hint, number: number, code: code, suggestReset: true, syncContacts: syncContacts))).startStandalone()
}
})
}
@@ -984,7 +984,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
let countryCode = AuthorizationSequenceController.defaultCountryCode()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).startStandalone()
})
controller.reset = { [weak self, weak controller] in
if let strongSelf = self, let strongController = controller {
@@ -994,7 +994,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
if let strongSelf = self, let strongController = controller {
strongController.inProgress = true
strongSelf.actionDisposable.set((performAccountReset(account: strongSelf.account)
|> deliverOnMainQueue).start(next: {
|> deliverOnMainQueue).startStrict(next: {
if let strongController = controller {
strongController.inProgress = false
}
@@ -1018,7 +1018,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
controller.logout = { [weak self] in
if let strongSelf = self {
let account = strongSelf.account
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .empty)).startStandalone()
}
}
}
@@ -1044,7 +1044,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
let countryCode = AuthorizationSequenceController.defaultCountryCode()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).start()
let _ = TelegramEngineUnauthorized(account: strongSelf.account).auth.setState(state: UnauthorizedAccountState(isTestingEnvironment: strongSelf.account.testingEnvironment, masterDatacenterId: strongSelf.account.masterDatacenterId, contents: .phoneEntry(countryCode: countryCode, number: ""))).startStandalone()
}, displayCancel: displayCancel)
controller.signUpWithName = { [weak self, weak controller] firstName, lastName, avatarData, avatarAsset, avatarAdjustments in
if let strongSelf = self {
@@ -1112,7 +1112,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
}
return (ApplicationSpecificNotice.forcedPasswordSetupKey(), entry)
})
|> deliverOnMainQueue).start(error: { error in
|> deliverOnMainQueue).startStrict(error: { error in
Queue.mainQueue().async {
if let strongSelf = self, let controller = controller {
controller.inProgress = false