TM-SGNL-iOS/SignalServiceKit/Usernames/UsernameValidationObserver.swift
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

46 lines
1.2 KiB
Swift

//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
public class UsernameValidationObserver {
private let appReadiness: AppReadiness
private let manager: UsernameValidationManager
private let database: any DB
public init(appReadiness: AppReadiness, manager: UsernameValidationManager, database: any DB) {
self.appReadiness = appReadiness
self.manager = manager
self.database = database
observeNotifications()
appReadiness.runNowOrWhenAppDidBecomeReadyAsync {
Task {
await self.manager.validateUsernameIfNecessary()
}
}
}
// MARK: Notifications
private func observeNotifications() {
NotificationCenter.default.addObserver(
self,
selector: #selector(didBecomeActive),
name: .OWSApplicationWillEnterForeground,
object: nil)
}
@objc
func didBecomeActive() {
AssertIsOnMainThread()
appReadiness.runNowOrWhenAppDidBecomeReadyAsync {
Task {
await self.manager.validateUsernameIfNecessary()
}
}
}
}