From 5d050f6dfccd899aef771c2489607efe95e8e0e9 Mon Sep 17 00:00:00 2001 From: Doug Date: Thu, 10 Sep 2026 17:18:45 +0100 Subject: [PATCH] Fix some SwiftLint warnings. --- .gitignore | 15 +-------------- .../Other/MapLibre/MapLibreStaticMapView.swift | 2 +- .../Other/SwiftUI/Views/LoadableImage.swift | 2 +- .../SwiftUI/Views/OverridableAvatarImage.swift | 2 +- .../CreateRoomScreen/View/CreateRoomScreen.swift | 2 +- ...melineMediaPreviewRedactConfirmationView.swift | 2 +- .../View/NotificationPermissionsScreen.swift | 2 +- .../Timeline/TimelineInteractionHandler.swift | 1 + .../Timeline/View/Replies/TimelineReplyView.swift | 4 ++-- .../TimelineItemViews/GalleryItemTileView.swift | 2 +- .../View/TimelineItemViews/GalleryListView.swift | 2 +- .../Sources/Compound/Components/BigIcon.swift | 2 +- 12 files changed, 13 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 17fa81700..bce983a6d 100644 --- a/.gitignore +++ b/.gitignore @@ -18,22 +18,9 @@ DerivedData/ .swiftpm .netrc -# fastlane -# -# It is recommended to not store the screenshots in the git repo. -# Instead, use fastlane to re-generate the screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots/**/*.png -fastlane/test_output -towncrier.toml.tmp -version_changes.md - build /vendor/ +*/xcshareddata/xcodecloud ## macOS Files .DS_Store diff --git a/ElementX/Sources/Other/MapLibre/MapLibreStaticMapView.swift b/ElementX/Sources/Other/MapLibre/MapLibreStaticMapView.swift index efe69da68..b766ca224 100644 --- a/ElementX/Sources/Other/MapLibre/MapLibreStaticMapView.swift +++ b/ElementX/Sources/Other/MapLibre/MapLibreStaticMapView.swift @@ -63,7 +63,7 @@ struct MapLibreStaticMapView: View { ZStack { image .resizable() - .aspectRatio(contentMode: .fill) + .scaledToFill() pinAnnotationView } case .failure(let error): diff --git a/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift b/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift index 91738fe39..90fe5529e 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/LoadableImage.swift @@ -423,7 +423,7 @@ struct LoadableImage_Previews: PreviewProvider, TestablePreview { private extension View { func layout(title: String, hideTimelineMedia: Bool = false) -> some View { - aspectRatio(contentMode: .fit) + scaledToFit() .clipShape(RoundedRectangle(cornerRadius: 20)) .overlay(alignment: .bottom) { Text(title) diff --git a/ElementX/Sources/Other/SwiftUI/Views/OverridableAvatarImage.swift b/ElementX/Sources/Other/SwiftUI/Views/OverridableAvatarImage.swift index 30bc80b76..bea51d6c8 100644 --- a/ElementX/Sources/Other/SwiftUI/Views/OverridableAvatarImage.swift +++ b/ElementX/Sources/Other/SwiftUI/Views/OverridableAvatarImage.swift @@ -23,7 +23,7 @@ struct OverridableAvatarImage: View { AsyncImage(url: overrideURL) { image in image .resizable() - .aspectRatio(contentMode: .fill) + .scaledToFill() } placeholder: { ProgressView() } diff --git a/ElementX/Sources/Screens/CreateRoomScreen/View/CreateRoomScreen.swift b/ElementX/Sources/Screens/CreateRoomScreen/View/CreateRoomScreen.swift index 590936203..c20dc4e44 100644 --- a/ElementX/Sources/Screens/CreateRoomScreen/View/CreateRoomScreen.swift +++ b/ElementX/Sources/Screens/CreateRoomScreen/View/CreateRoomScreen.swift @@ -113,7 +113,7 @@ struct CreateRoomScreen: View { if let avatarImage = context.viewState.avatarImage { Image(uiImage: avatarImage) .resizable() - .aspectRatio(contentMode: .fill) + .scaledToFill() .scaledFrame(size: 70, relativeTo: .title) .avatarShape(context.viewState.isSpace ? .roundedRect : .circle, size: 70) .overlay(alignment: .bottomTrailing) { diff --git a/ElementX/Sources/Screens/FilePreviewScreen/View/TimelineMediaPreviewRedactConfirmationView.swift b/ElementX/Sources/Screens/FilePreviewScreen/View/TimelineMediaPreviewRedactConfirmationView.swift index 8d0c31c98..5e8097c6c 100644 --- a/ElementX/Sources/Screens/FilePreviewScreen/View/TimelineMediaPreviewRedactConfirmationView.swift +++ b/ElementX/Sources/Screens/FilePreviewScreen/View/TimelineMediaPreviewRedactConfirmationView.swift @@ -74,7 +74,7 @@ struct TimelineMediaPreviewRedactConfirmationView: View { mediaProvider: context.mediaProvider) { Color.compound.bgSubtleSecondary } - .aspectRatio(contentMode: .fill) + .scaledToFill() } .clipShape(RoundedRectangle(cornerRadius: 8)) .accessibilityHidden(true) diff --git a/ElementX/Sources/Screens/Onboarding/NotificationPermissionsScreen/View/NotificationPermissionsScreen.swift b/ElementX/Sources/Screens/Onboarding/NotificationPermissionsScreen/View/NotificationPermissionsScreen.swift index 074e00b40..7351c6abb 100644 --- a/ElementX/Sources/Screens/Onboarding/NotificationPermissionsScreen/View/NotificationPermissionsScreen.swift +++ b/ElementX/Sources/Screens/Onboarding/NotificationPermissionsScreen/View/NotificationPermissionsScreen.swift @@ -45,7 +45,7 @@ struct NotificationPermissionsScreen: View { Asset.Images.notificationsPromptGraphic .swiftUIImage .resizable() - .aspectRatio(contentMode: .fit) + .scaledToFit() .accessibilityHidden(true) } } diff --git a/ElementX/Sources/Screens/Timeline/TimelineInteractionHandler.swift b/ElementX/Sources/Screens/Timeline/TimelineInteractionHandler.swift index 1aa6403d2..243662209 100644 --- a/ElementX/Sources/Screens/Timeline/TimelineInteractionHandler.swift +++ b/ElementX/Sources/Screens/Timeline/TimelineInteractionHandler.swift @@ -461,6 +461,7 @@ class TimelineInteractionHandler { audioPlayerState(for: itemID)?.setPlaybackSpeed(nextSpeed) } + // swiftlint:disable:next cyclomatic_complexity func playPauseAudio(for itemID: TimelineItemIdentifier) async { MXLog.info("Toggle play/pause audio for itemID \(itemID)") guard let timelineItem = timelineController.timelineItems.firstUsingStableID(itemID) else { diff --git a/ElementX/Sources/Screens/Timeline/View/Replies/TimelineReplyView.swift b/ElementX/Sources/Screens/Timeline/View/Replies/TimelineReplyView.swift index 989adb9b0..553178749 100644 --- a/ElementX/Sources/Screens/Timeline/View/Replies/TimelineReplyView.swift +++ b/ElementX/Sources/Screens/Timeline/View/Replies/TimelineReplyView.swift @@ -266,11 +266,11 @@ struct TimelineReplyView: View { CompoundIcon(\.image) .padding(4.0) } - .aspectRatio(contentMode: .fill) + .scaledToFill() case .iconAsset(let asset): Image(asset: asset) .resizable() - .aspectRatio(contentMode: .fit) + .scaledToFit() .padding(8.0) case .icon(let keyPath): CompoundIcon(keyPath, size: .medium, relativeTo: .body) diff --git a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryItemTileView.swift b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryItemTileView.swift index a5d8ea89d..46f2c5a4e 100644 --- a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryItemTileView.swift +++ b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryItemTileView.swift @@ -79,7 +79,7 @@ struct GalleryItemTileView: View { size: item.size, mediaProvider: mediaProvider) { imageView in imageView - .aspectRatio(contentMode: .fill) + .scaledToFill() } placeholder: { placeholder } diff --git a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryListView.swift b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryListView.swift index 30e823a74..da21035f1 100644 --- a/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryListView.swift +++ b/ElementX/Sources/Screens/Timeline/View/TimelineItemViews/GalleryListView.swift @@ -125,7 +125,7 @@ private struct GalleryListRow: View { size: item.size, mediaProvider: mediaProvider) { imageView in imageView - .aspectRatio(contentMode: .fill) + .scaledToFill() } placeholder: { Color.compound.bgSubtleSecondary } diff --git a/compound-ios/Sources/Compound/Components/BigIcon.swift b/compound-ios/Sources/Compound/Components/BigIcon.swift index 0c6a9f4ee..83650f04d 100644 --- a/compound-ios/Sources/Compound/Components/BigIcon.swift +++ b/compound-ios/Sources/Compound/Components/BigIcon.swift @@ -66,7 +66,7 @@ public extension Image { func bigIcon(insets: CGFloat = 16, style: BigIcon.Style = .defaultSolid) -> some View { resizable() .renderingMode(.template) - .aspectRatio(contentMode: .fit) + .scaledToFit() .scaledPadding(insets, relativeTo: .compound.headingLG) .modifier(BigIconModifier(style: style)) }