Signal-iOS/SignalServiceKit/Usernames/UsernameValidationObserver.swift
2023-03-14 09:56:08 -05:00

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)
}
}
}
}