// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.

import UIKit
import SessionUIKit

public extension Notification.Name {
    static let windowSubviewsChanged = Notification.Name("windowSubviewsChanged")
}


public class TraitObservingWindow: UIWindow {
    public override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
        super.traitCollectionDidChange(previousTraitCollection)
        
        ThemeManager.traitCollectionDidChange(previousTraitCollection)
    }
    
    public override func didAddSubview(_ subview: UIView) {
        super.didAddSubview(subview)
        
        NotificationCenter.default.post(name: .windowSubviewsChanged, object: nil)
    }
    
    public override func willRemoveSubview(_ subview: UIView) {
        super.willRemoveSubview(subview)
        
        NotificationCenter.default.post(name: .windowSubviewsChanged, object: nil)
    }
}