UIApplication+Extension.swift 1011 B

12345678910111213141516171819202122232425262728
  1. //
  2. // UIApplication+Extension.swift
  3. // Nextcloud
  4. //
  5. // Created by Marino Faggiana on 25/03/24.
  6. // Copyright © 2024 Marino Faggiana. All rights reserved.
  7. //
  8. import Foundation
  9. extension UIApplication {
  10. var firstWindow: UIWindow? {
  11. let windowScenes = UIApplication.shared.connectedScenes.compactMap { $0 as? UIWindowScene }
  12. let firstActiveScene = windowScenes.first
  13. let keyWindow = firstActiveScene?.keyWindow
  14. return keyWindow
  15. }
  16. func allSceneSessionDestructionExceptFirst() {
  17. let windowScenes = UIApplication.shared.connectedScenes.compactMap { $0 as? UIWindowScene }
  18. let firstActiveScene = windowScenes.first
  19. let options = UIWindowSceneDestructionRequestOptions()
  20. options.windowDismissalAnimation = .standard
  21. for windowScene in windowScenes {
  22. if windowScene == firstActiveScene { continue }
  23. requestSceneSessionDestruction(windowScene.session, options: options, errorHandler: nil)
  24. }
  25. }
  26. }