From 1ad590fc8cca9fed316ed8ca5f5d1b353a26544a Mon Sep 17 00:00:00 2001 From: Laurin-Notemann <47634664+Laurin-Notemann@users.noreply.github.com> Date: Mon, 12 Oct 2026 12:20:52 +0000 Subject: [PATCH] fix(otter): iPhone app no longer stays blank on iOS 27.1+ T3LayoutMetricsView withheld layout metrics on iOS 27.1+ until UIHingeInteraction reported, but phones without a hinge never get an update. The workspace navigator waits for those metrics before attaching any screen, so the app stayed black or white. Publish as hinge-less right away and switch when a hinge reports. Co-Authored-By: Claude Opus 5.5 --- .../modules/t3-native-controls/ios/T3LayoutMetricsView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/mobile/modules/t3-native-controls/ios/T3LayoutMetricsView.swift b/apps/mobile/modules/t3-native-controls/ios/T3LayoutMetricsView.swift index 4e0fcf6d2206..8caa227af0df 100644 --- a/apps/mobile/modules/t3-native-controls/ios/T3LayoutMetricsView.swift +++ b/apps/mobile/modules/t3-native-controls/ios/T3LayoutMetricsView.swift @@ -16,7 +16,8 @@ final class T3LayoutMetricsView: ExpoView { } #if compiler(>=6.4) if #available(iOS 27.1, *) { - hasHinge = nil + // Publish as hinge-less right away: phones without a hinge may never get an update, + // and the workspace waits for metrics before attaching any screen. addInteraction(UIHingeInteraction { [weak self] _, update in guard let self, self.window != nil else { return } // Capability survives temporary detachment and does not follow the hinge angle.