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