Signal-iOS/Signal/src/ViewControllers/Registration/RegistrationLoadingViewController.swift
Evan Hahn 5959701090 Remove two "TODO" comments we've already addressed
This change should have no user impact. It's just removing TODOs.
2023-03-21 12:21:34 -05:00

74 lines
2.0 KiB
Swift

//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
class RegistrationLoadingViewController: OWSViewController {
enum RegistrationLoadingMode {
case initialLoad
case submittingPhoneNumber(e164: String)
case submittingVerificationCode
}
public init(mode: RegistrationLoadingMode) {
spinnerView = AnimatedProgressView(loadingText: {
switch mode {
case .initialLoad:
return ""
case let .submittingPhoneNumber(e164):
let format = OWSLocalizedString(
"REGISTRATION_VIEW_PHONE_NUMBER_SPINNER_LABEL_FORMAT",
comment: "Label for the progress spinner shown during phone number registration. Embeds {{phone number}}."
)
return String(format: format, e164.e164FormattedAsPhoneNumberWithoutBreaks)
case .submittingVerificationCode:
return OWSLocalizedString(
"ONBOARDING_VERIFICATION_CODE_VALIDATION_PROGRESS_LABEL",
comment: "Label for a progress spinner currently validating code"
)
}
}())
super.init()
}
@available(*, unavailable)
public override init() {
owsFail("This should not be called")
}
// MARK: - Rendering
private let spinnerView: AnimatedProgressView
public override func viewDidLoad() {
super.viewDidLoad()
initialRender()
}
public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
spinnerView.startAnimating()
}
public override func themeDidChange() {
super.themeDidChange()
render()
}
private func initialRender() {
spinnerView.alpha = 1
view.addSubview(spinnerView)
spinnerView.autoCenterInSuperviewMargins()
render()
}
private func render() {
view.backgroundColor = Theme.backgroundColor
}
}