Implement profile tab with Android-aligned flows and OSS upload.

Add personal info page, account switch, real-name auth, withdrawal settings, session cache extensions, AlibabaCloudOSS SPM, and unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-06 16:01:05 +08:00
parent 02a80764ea
commit 005cac3f78
36 changed files with 4077 additions and 57 deletions

View File

@ -273,8 +273,8 @@ final class LoginViewController: BaseViewController {
do {
let resolution = try await viewModel.login(authAPI: authAPI)
switch resolution {
case let .completed(response):
completeLogin(with: response)
case let .completed(response, account):
completeLogin(with: response, account: account)
case .needsAccountSelection:
break
}
@ -311,7 +311,7 @@ final class LoginViewController: BaseViewController {
do {
let response = try await viewModel.selectAccount(account, authAPI: authAPI)
completeLogin(with: response)
completeLogin(with: response, account: account)
accountSelectionController = nil
dismiss(animated: true)
} catch is CancellationError {
@ -322,11 +322,12 @@ final class LoginViewController: BaseViewController {
}
}
private func completeLogin(with response: V9AuthResponse) {
private func completeLogin(with response: V9AuthResponse, account: AccountSwitchAccount) {
AuthSessionHelper.completeLogin(
with: response,
username: viewModel.normalizedUsername,
privacyAgreementAccepted: viewModel.isPrivacyChecked
privacyAgreementAccepted: viewModel.isPrivacyChecked,
selectedAccount: account
)
}