Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/actions/uitests/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ runs:
run: |
cd Example
xcodebuild test \
-scheme OpenSwiftUIUITests \
-configuration SwiftUIDebug \
-scheme SUI_UITests \
-destination "${{ inputs.destination }}" \
-skipMacroValidation \
-skipPackagePluginValidation || true
Expand All @@ -38,8 +37,7 @@ runs:
run: |
cd Example
xcodebuild test \
-scheme OpenSwiftUIUITests \
-configuration OpenSwiftUIDebug \
-scheme OSUI_UITests \
-destination "${{ inputs.destination }}" \
-skipMacroValidation \
-skipPackagePluginValidation 2>&1 | tee /tmp/${{ inputs.platform }}-uitest.log
Expand Down
4 changes: 4 additions & 0 deletions Sources/COpenSwiftUI/Shims/UIKit/UIKit_Private.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ OPENSWIFTUI_ASSUME_NONNULL_BEGIN
@end
#endif

@interface UIWindow (OpenSwiftUI_SPI)
@property (nonatomic, readonly, nullable) UIWindowScene *_windowHostingScene_openswiftui_safe_wrapper OPENSWIFTUI_SWIFT_NAME(_windowHostingScene);
@end

@interface UIWindowScene (OpenSwiftUI_SPI)
@property (nonatomic, readonly) UIUserInterfaceStyle _systemUserInterfaceStyle_openswiftui_safe_wrapper OPENSWIFTUI_SWIFT_NAME(_systemUserInterfaceStyle);
#if OPENSWIFTUI_LINK_BACKLIGHTSERVICES
Expand Down
7 changes: 7 additions & 0 deletions Sources/COpenSwiftUI/Shims/UIKit/UIKit_Private.m
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,13 @@ - (CGFloat)_pointsPerInch_openswiftui_safe_wrapper {
@end
#endif

@implementation UIWindow (OpenSwiftUI_SPI)
- (UIWindowScene *) _windowHostingScene_openswiftui_safe_wrapper {
OPENSWIFTUI_SAFE_WRAPPER_IMP(UIWindowScene *, @"_windowHostingScene", nil);
return func(self, selector);
}
@end

@implementation UIWindowScene (OpenSwiftUI_SPI)
- (UIUserInterfaceStyle) _systemUserInterfaceStyle_openswiftui_safe_wrapper {
OPENSWIFTUI_SAFE_WRAPPER_IMP(UIUserInterfaceStyle, @"_systemUserInterfaceStyle", UIUserInterfaceStyleUnspecified);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,11 +115,9 @@ package class UIHostingViewBase {
@inline(__always)
package var sceneActivationState: UIScene.ActivationState? {
get {
let selector = Selector(("_windowHostingScene"))
guard let uiView,
let window = uiView.window,
window.responds(to: selector),
(window.perform(selector).takeUnretainedValue() as? UIWindowScene) != nil
window._windowHostingScene != nil
else {
return nil
}
Expand Down
Loading