import Foundation
// MARK: - SplashViewControllerDelegate
/// Delegate protocol for SplashViewController to communicate events to OnboardingCoordinator.
/// This allows the coordinator to control the onboarding flow while SplashViewController
/// handles UI presentation and navigation animations.
@objc @MainActor
protocol SplashViewControllerDelegate: AnyObject {
// MARK: - Lifecycle
/// Called when the view controller has appeared and is ready for instructions.
/// The coordinator should respond by calling appropriate methods on SplashViewController.
func splashViewControllerDidAppear(_ viewController: SplashViewController)
// MARK: - User Actions
/// Called when user taps the "Setup" button to create a new identity.
func splashViewControllerDidTapSetup(_ viewController: SplashViewController) async
/// Called when user taps the "Restore" button to restore an existing identity.
func splashViewControllerDidTapRestore(_ viewController: SplashViewController)
// MARK: - Question Responses
/// Called when user responds to the "ID backup found" question.
/// - Parameters:
/// - viewController: The SplashViewController
/// - useBackup: `true` if user wants to use the found backup, `false` to ignore it
func splashViewController(_ viewController: SplashViewController, didAnswerIDBackupQuestion useBackup: Bool)
/// Called when user responds to the "ID already exists" question.
/// - Parameters:
/// - viewController: The SplashViewController
/// - useExisting: `true` if user wants to use existing ID, `false` to create new
func splashViewController(_ viewController: SplashViewController, didAnswerIDExistsQuestion useExisting: Bool)
// MARK: - Identity Creation
/// Called when RandomSeedViewController has generated a random seed.
/// The coordinator should proceed with identity creation.
/// - Parameters:
/// - viewController: The SplashViewController
/// - seed: The generated random seed data
func splashViewController(_ viewController: SplashViewController, didGenerateRandomSeed seed: Data)
/// Called when user cancels identity creation (backs out of RandomSeedViewController).
func splashViewControllerDidCancelIDCreation(_ viewController: SplashViewController)
// MARK: - Restore Flow
/// Called when a restore option is selected.
/// - Parameters:
/// - viewController: The SplashViewController
/// - option: The selected restore option
func splashViewController(_ viewController: SplashViewController, didSelectRestoreOption option: RestoreOption)
/// Called when restore flow completes successfully.
func splashViewControllerDidCompleteRestoreIdentity(_ viewController: SplashViewController)
/// Called when user cancels from the RestoreOptionData screen.
func splashViewControllerDidCancelRestore(_ viewController: SplashViewController)
/// Called when user cancels from the RestoreOptionBackup screen.
func splashViewControllerDidCancelRestoreOptionBackup(_ viewController: SplashViewController)
/// Called when user cancels from the RestoreSafe screen.
func splashViewControllerDidCancelRestoreSafe(_ viewController: SplashViewController)
/// Called when user cancels from the RestoreIdentity screen.
func splashViewControllerDidCancelRestoreIdentity(_ viewController: SplashViewController)
/// Called when `RestoreSafeViewController` requests a safe restore in the coordinator flow.
/// The coordinator orchestrates the two-phase restore (prepare → resolve RS → perform).
/// - Parameters:
/// - viewController: The SplashViewController
/// - restoreSafeViewController: The `RestoreSafeViewController` initiating the restore,
/// passed through so the coordinator can read its server/identity properties and
/// dismiss its loading HUD on completion or error.
/// - identity: The Threema ID entered by the user
/// - password: The Safe password entered by the user
func splashViewController(
_ viewController: SplashViewController,
didRequestSafeRestore restoreSafeViewController: RestoreSafeViewController,
identity: String,
password: String
)
// MARK: - License (Business/OnPrem)
/// Called when license entry is confirmed.
func splashViewControllerDidConfirmLicense(_ viewController: SplashViewController)
// MARK: - Completion
/// Called when the entire onboarding/ID setup flow has completed.
/// - Parameters:
/// - viewController: The SplashViewController
/// - setupConfiguration: The setup configuration with user's choices
func splashViewController(
_ viewController: SplashViewController,
didCompleteIDSetupWith setupConfiguration: SetupConfiguration
) async
}
// MARK: - RestoreOption
/// Options for restoring an identity.
@objc
enum RestoreOption: Int {
/// Restore from Threema Safe (full restore)
case safe
/// Restore from a full backup (full content restore)
case localBackup
/// Restore identity only from Threema Safe
case safeIdentityOnly
/// Restore from ID backup string
case idBackup
/// Keep local data and restore identity
case keepLocalData
}
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet am 2026-11-04)
¤
*© Formatika GbR, Deutschland