From b5222c51bb7adc60db87c2c2df20f7a87bcc5103 Mon Sep 17 00:00:00 2001 From: Cassio Rossi Date: Thu, 30 Apr 2026 17:09:34 -0300 Subject: [PATCH 1/2] fix(podcast): prevent full player controls from clipping on iPhone SE The artwork had no layout flexibility, causing favorite/share buttons and volume slider to be pushed off-screen on smaller devices. Applied layoutPriority(-1) to artwork so it shrinks first, reduced fixed spacing, and removed excessive bottom padding. Co-Authored-By: Claude Opus 4.6 --- .../Sources/Podcast/Views/Player/FullPlayerView.swift | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift b/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift index c3774c4c..da6a8238 100644 --- a/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift +++ b/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift @@ -142,7 +142,7 @@ struct FullPlayerView: View { } else { // Layout A - Vertical (iPhone portrait medium + iPad centered) - VStack(spacing: 20) { + VStack(spacing: 16) { HStack(spacing: 0) { Spacer() actions @@ -150,18 +150,19 @@ struct FullPlayerView: View { .padding(.top, 5) artworkView + .layoutPriority(-1) podcastTitle(podcast.title) - Spacer() + Spacer(minLength: 8) progressSlider - .padding(.bottom, 20) + .padding(.bottom, 16) playbackControls - .padding(.bottom, 20) + .padding(.bottom, 16) volumeSlider + .padding(.bottom, 16) } .padding(.horizontal) - .padding(.bottom, 40) } } } From c2f3722730ffd6f8f00a4867045c3dbf0e6a262a Mon Sep 17 00:00:00 2001 From: Cassio Rossi Date: Thu, 30 Apr 2026 17:11:26 -0300 Subject: [PATCH 2/2] fix(podcast): allow artwork to compress on small screens Replace fixedSize with aspectRatio(1, contentMode: .fit) so the artwork maintains its square ratio while shrinking to fit the available vertical space on iPhone SE. Co-Authored-By: Claude Opus 4.6 --- .../Sources/Podcast/Views/Player/FullPlayerView.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift b/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift index da6a8238..ed30ad11 100644 --- a/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift +++ b/MacMagazine/Features/PodcastLibrary/Sources/Podcast/Views/Player/FullPlayerView.swift @@ -207,6 +207,7 @@ private extension FullPlayerView { location: .player, fallback: { EmptyView() }) .cornerRadius(24) + .aspectRatio(1, contentMode: .fit) .frame(maxWidth: 540, maxHeight: 540) .scaleEffect(playerManager.isPlaying ? 0.95 : 0.85) .shadow( @@ -215,10 +216,9 @@ private extension FullPlayerView { x: 0, y: 16 ) - .fixedSize(horizontal: false, vertical: true) .padding(.horizontal) .accessibilityHidden(true) - .id(playerManager.currentChapter?.id ?? UUID()) // Triggers animation when chapter changes + .id(playerManager.currentChapter?.id ?? UUID()) .transition(.opacity) .animation( .easeInOut(duration: 0.35),