Repository: Automattic/pocket-casts-ios
File: podcasts/End of Year/Stories/2025/PaidStoryWallView2025.swift (Swift)

Code before:
                    .frame(width: geometry.size.width)
                    .background() {
                        GeometryReader { geometry in
                            HStack {
                                Spacer()
                                CustomVideoPlayerView(urlString: "playback_2025_plus")
                                    .frame(width: ((geometry.size.height - 48.0) / videoAspectRatio).rounded(),
                                           height: (geometry.size.height - 48.0))
                                    .allowsHitTesting(false)
                                Spacer()
                            }
                        }
                    }
                    .padding(.top, UIScreen.isSmallScreen ? 80 : 110)
                    .allowsHitTesting(false)
                StoryHeader2025(title: L10n.playback2025PlusUpsellTitle, description: L10n.playback2025PlusUpsellDescription, subscriptionTier: .plus, topPadding: 0)
                Button(L10n.playback2025PlusUpsellButtonTitle) {
                    guard let storiesViewController = SceneHelper.rootViewController() else {
                        return
                    }

                    NavigationManager.sharedManager.showUpsellView(from: storiesViewController, source: .endOfYear, flow: SyncManager.isUserLoggedIn() ? .endOfYearUpsell : .endOfYear)
                }
                .buttonStyle(BasicButtonStyle(textColor: .black, backgroundColor: Color.clear, borderColor: .black))
                .padding(.horizontal, 24)
                .padding(.vertical, 6)
            }
        }
        .foregroundStyle(foregroundColor)
        .background {
            CustomVideoPlayerView(urlString: "playback_2025_plus_background", backgroundColor: backgroundColor)
                .frame(maxWidth: .infinity, maxHeight: .infinity)
                .ignoresSafeArea()
                .allowsHitTesting(false)
        }
        .onAppear {
            Analytics.track(.endOfYearUpsellShown, properties: ["year": "2025"])
            Analytics.track(.endOfYearStoryShown, story: identifier)
        }
    }
}

fileprivate struct CustomVideoPlayerView: UIViewControllerRepresentable {

    private let player: AVQueuePlayer
    private let looper: AVPlayerLooper?
    private let backgroundColor: Color

    init(urlString: String, backgroundColor: Color = .clear) {
        self.player = AVQueuePlayer()
        if let videoURL = Bundle.main.url(forResource: urlString, withExtension: "mp4") {

Review comment (suggestion):
The padding between text and button is bigger than(24). Considering the footer has 4 on each part in a vertical padding, we should add 20 here
```suggestion
                .padding(.top, 20)
                .padding(.bottom, 6)
```

Code after:
                    .frame(width: geometry.size.width)
                    .background() {
                        GeometryReader { geometry in
                            HStack {
                                Spacer()
                                CustomVideoPlayerView(urlString: "playback_2025_plus")
                                    .frame(width: ((geometry.size.height - 48.0) / videoAspectRatio).rounded(),
                                           height: (geometry.size.height - 48.0))
                                    .allowsHitTesting(false)
                                Spacer()
                            }
                        }
                    }
                    .padding(.top, UIScreen.isSmallScreen ? 80 : 110)
                    .allowsHitTesting(false)
                StoryHeader2025(title: L10n.playback2025PlusUpsellTitle, description: L10n.playback2025PlusUpsellDescription, subscriptionTier: .plus, topPadding: 0)
                Button(L10n.playback2025PlusUpsellButtonTitle) {
                    guard let storiesViewController = SceneHelper.rootViewController() else {
                        return
                    }

                    NavigationManager.sharedManager.showUpsellView(from: storiesViewController, source: .endOfYear, flow: SyncManager.isUserLoggedIn() ? .endOfYearUpsell : .endOfYear)
                }
                .buttonStyle(BasicButtonStyle(textColor: .black, backgroundColor: Color.clear, borderColor: .black))
                .padding(.horizontal, 24)
                .padding(.top, 20)
                .padding(.bottom, 4)
            }
        }
        .foregroundStyle(foregroundColor)
        .background {
            CustomVideoPlayerView(urlString: "playback_2025_plus_background", backgroundColor: backgroundColor)
                .frame(maxWidth: .infinity, maxHeight: .infinity)
                .ignoresSafeArea()
                .allowsHitTesting(false)
        }
        .onAppear {
            Analytics.track(.endOfYearUpsellShown, properties: ["year": "2025"])
            Analytics.track(.endOfYearStoryShown, story: identifier)
        }
    }
}

fileprivate struct CustomVideoPlayerView: UIViewControllerRepresentable {

    private let player: AVQueuePlayer
    private let looper: AVPlayerLooper?
    private let backgroundColor: Color

    init(urlString: String, backgroundColor: Color = .clear) {
        self.player = AVQueuePlayer()