mirror of
https://github.com/home-assistant/iOS.git
synced 2026-06-16 23:33:36 -05:00
<!-- Thank you for submitting a Pull Request and helping to improve Home Assistant. Please complete the following sections to help the processing and review of your changes. Please do not delete anything from this template. --> ## Summary <!-- Provide a brief summary of the changes you have made and most importantly what they aim to achieve --> On iOS 15, when a WebViewController is hosted in a UINavigationController with the navigation bar hidden, adding a full-screen child UIViewController whose subtree contains a UIHostingController triggers a UIKit safe-area inflation bug: view.safeAreaInsets.top becomes roughly twice the real status-bar height, the native statusBarView (pinned to view.safeAreaLayoutGuide.topAnchor) oversizes, and WKWebView caches a hit-test region from the inflated value — so taps near the top of the page (e.g. the dashboard hamburger menu) land at the wrong content coordinates until the device is rotated. iOS 16+ is unaffected. Two callsites on main triggered this independently: 1. KioskSecretExitGestureViewController was installed unconditionally from KioskModeManager.setup(using:) — even when kiosk mode wasn't active. Now installed in enableKioskMode() and torn down in disableKioskMode(); setup() only re-anchors it for an already-active kiosk session. 2. WebViewController+EmptyState.setupEmptyState() called addChild(emptyState.hostingViewController) unconditionally (added in #4572 for iOS-16 SwiftUI safe-area propagation). The addChild + didMove(toParent:) calls are now guarded with #available(iOS 16.0, *). The empty state still renders on iOS 15; it just skips the parenting that iOS 15 doesn't honor the same way anyway. Updated the related test to XCTSkip on iOS 15 with a comment pointing at this commit. Fixes #4499. ## Screenshots <!-- If this is a user-facing change not in the frontend, please include screenshots in light and dark mode. --> ## Link to pull request in Documentation repository <!-- Pull requests that add, change or remove functionality must have a corresponding pull request in the Companion App Documentation repository (https://github.com/home-assistant/companion.home-assistant). Please add the number of this pull request after the "#" --> Documentation: home-assistant/companion.home-assistant# ## Any other notes <!-- If there is any other information of note, like if this Pull Request is part of a bigger change, please include it here. -->
4.9 KiB
4.9 KiB