From a8dcd78e4f1d0f3080ef8aa517978a17e78fed51 Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Thu, 19 Jun 2025 14:06:10 +0300 Subject: [PATCH] Fix MediaTimeline screen header iOS 26 crash, update remaining version predicates. --- .../PlatformViewVersionPredicate.swift | 10 +++---- .../View/MediaEventsTimelineScreen.swift | 26 ++++++++++++------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/ElementX/Sources/Other/Extensions/PlatformViewVersionPredicate.swift b/ElementX/Sources/Other/Extensions/PlatformViewVersionPredicate.swift index b1907e6bf..aaf00f96e 100644 --- a/ElementX/Sources/Other/Extensions/PlatformViewVersionPredicate.swift +++ b/ElementX/Sources/Other/Extensions/PlatformViewVersionPredicate.swift @@ -6,28 +6,28 @@ // import SwiftUI -import SwiftUIIntrospect +@_spi(Advanced) import SwiftUIIntrospect extension PlatformViewVersionPredicate { static var supportedVersions: Self { - .iOS(.v17, .v18) + .iOS(.v16...) } } extension PlatformViewVersionPredicate { static var supportedVersions: Self { - .iOS(.v17, .v18) + .iOS(.v16...) } } extension PlatformViewVersionPredicate { static var supportedVersions: Self { - .iOS(.v17, .v18) + .iOS(.v16...) } } extension PlatformViewVersionPredicate { static var supportedVersions: Self { - .iOS(.v17, .v18) + .iOS(.v16...) } } diff --git a/ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift b/ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift index bbe1842d7..60cb736ed 100644 --- a/ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift +++ b/ElementX/Sources/Screens/MediaEventsTimelineScreen/View/MediaEventsTimelineScreen.swift @@ -194,16 +194,12 @@ struct MediaEventsTimelineScreen: View { @ToolbarContentBuilder private var toolbar: some ToolbarContent { ToolbarItem(placement: .principal) { - Picker("", selection: $context.screenMode) { - Text(L10n.screenMediaBrowserListModeMedia) - .padding() - .tag(MediaEventsTimelineScreenMode.media) - Text(L10n.screenMediaBrowserListModeFiles) - .padding() - .tag(MediaEventsTimelineScreenMode.files) + if #available(iOS 19, *) { + screenModePicker + } else { + screenModePicker + .frame(idealWidth: .greatestFiniteMagnitude) } - .pickerStyle(.segmented) - .frame(idealWidth: .greatestFiniteMagnitude) } ToolbarItem(placement: .primaryAction) { @@ -212,6 +208,18 @@ struct MediaEventsTimelineScreen: View { } } + private var screenModePicker: some View { + Picker("", selection: $context.screenMode) { + Text(L10n.screenMediaBrowserListModeMedia) + .padding() + .tag(MediaEventsTimelineScreenMode.media) + Text(L10n.screenMediaBrowserListModeFiles) + .padding() + .tag(MediaEventsTimelineScreenMode.files) + } + .pickerStyle(.segmented) + } + func tappedItem(_ item: RoomTimelineItemViewState) { context.send(viewAction: .tappedItem(item: item)) }