diff --git a/Sources/SPIndicator/Extensions/UIApplicationExtension.swift b/Sources/SPIndicator/Extensions/UIApplicationExtension.swift new file mode 100644 index 0000000..22a1ceb --- /dev/null +++ b/Sources/SPIndicator/Extensions/UIApplicationExtension.swift @@ -0,0 +1,25 @@ +// +// UIApplicationExtension.swift +// SPIndicator +// +// Created by flexih on 2023/7/29. +// + +#if os(visionOS) +import UIKit + +public extension UIApplication { + var keyWindow: UIWindow? { + for scene in UIApplication.shared.connectedScenes { + if scene.activationState == .foregroundActive, + let sceneDeleate = (scene as? UIWindowScene)?.delegate as? UIWindowSceneDelegate, + let window = sceneDeleate.window { + return window + } + } + print("\(#function): Failed to retrieve the window.") + return nil + } +} + +#endif diff --git a/Sources/SPIndicator/SPIndicatorView.swift b/Sources/SPIndicator/SPIndicatorView.swift index 30929a8..3aa3055 100644 --- a/Sources/SPIndicator/SPIndicatorView.swift +++ b/Sources/SPIndicator/SPIndicatorView.swift @@ -74,7 +74,9 @@ open class SPIndicatorView: UIView { private lazy var backgroundView: UIVisualEffectView = { let view: UIVisualEffectView = { - if #available(iOS 13.0, *) { + if #available(iOS 26.0, *) { + return UIVisualEffectView(effect: UIGlassEffect(style: .regular)) + } else if #available(iOS 13.0, *) { return UIVisualEffectView(effect: UIBlurEffect(style: .systemThickMaterial)) } else { return UIVisualEffectView(effect: UIBlurEffect(style: .light)) diff --git a/Sources/SPIndicator/Services/SPIndicatorHaptic.swift b/Sources/SPIndicator/Services/SPIndicatorHaptic.swift index c7516de..266e786 100644 --- a/Sources/SPIndicator/Services/SPIndicatorHaptic.swift +++ b/Sources/SPIndicator/Services/SPIndicatorHaptic.swift @@ -32,7 +32,7 @@ public enum SPIndicatorHaptic { case none func impact() { - #if os(iOS) + #if os(iOS) && !os(visionOS) let generator = UINotificationFeedbackGenerator() switch self { case .success: