From 2b446833da6b709a5d53693c4443f992cd7b297c Mon Sep 17 00:00:00 2001 From: Thomas Ricouard Date: Sun, 21 Jan 2024 19:46:29 +0100 Subject: [PATCH] Notifications: Full media size + autoplay --- Packages/Env/Sources/Env/CustomEnvValues.swift | 9 +++++++++ .../Sources/MediaUI/MediaUIAttachmentVideoView.swift | 2 +- .../Sources/Notifications/NotificationRowView.swift | 2 ++ .../Sources/StatusKit/Embed/StatusEmbeddedView.swift | 1 + .../Row/Subviews/StatusRowMediaPreviewView.swift | 2 +- 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Packages/Env/Sources/Env/CustomEnvValues.swift b/Packages/Env/Sources/Env/CustomEnvValues.swift index ec6ac161..21db4121 100644 --- a/Packages/Env/Sources/Env/CustomEnvValues.swift +++ b/Packages/Env/Sources/Env/CustomEnvValues.swift @@ -13,6 +13,10 @@ private struct IsCompact: EnvironmentKey { static let defaultValue: Bool = false } +private struct IsMediaCompact: EnvironmentKey { + static let defaultValue: Bool = false +} + private struct IsModal: EnvironmentKey { static let defaultValue: Bool = false } @@ -53,6 +57,11 @@ public extension EnvironmentValues { set { self[IsCompact.self] = newValue } } + var isMediaCompact: Bool { + get { self[IsMediaCompact.self] } + set { self[IsMediaCompact.self] = newValue } + } + var isModal: Bool { get { self[IsModal.self] } set { self[IsModal.self] = newValue } diff --git a/Packages/MediaUI/Sources/MediaUI/MediaUIAttachmentVideoView.swift b/Packages/MediaUI/Sources/MediaUI/MediaUIAttachmentVideoView.swift index a0786d72..51bbc895 100644 --- a/Packages/MediaUI/Sources/MediaUI/MediaUIAttachmentVideoView.swift +++ b/Packages/MediaUI/Sources/MediaUI/MediaUIAttachmentVideoView.swift @@ -75,7 +75,7 @@ import SwiftUI @MainActor public struct MediaUIAttachmentVideoView: View { @Environment(\.scenePhase) private var scenePhase - @Environment(\.isCompact) private var isCompact + @Environment(\.isMediaCompact) private var isCompact @Environment(UserPreferences.self) private var preferences @Environment(Theme.self) private var theme diff --git a/Packages/Notifications/Sources/Notifications/NotificationRowView.swift b/Packages/Notifications/Sources/Notifications/NotificationRowView.swift index f9dbb160..0645761a 100644 --- a/Packages/Notifications/Sources/Notifications/NotificationRowView.swift +++ b/Packages/Notifications/Sources/Notifications/NotificationRowView.swift @@ -160,6 +160,7 @@ struct NotificationRowView: View { client: client, routerPath: routerPath, showActions: true)) + .environment(\.isMediaCompact, false) } else { StatusRowView(viewModel: .init(status: status, client: client, @@ -167,6 +168,7 @@ struct NotificationRowView: View { showActions: false, textDisabled: true)) .lineLimit(4) + .environment(\.isMediaCompact, true) } Spacer() } diff --git a/Packages/StatusKit/Sources/StatusKit/Embed/StatusEmbeddedView.swift b/Packages/StatusKit/Sources/StatusKit/Embed/StatusEmbeddedView.swift index b4dca5b3..e65aab30 100644 --- a/Packages/StatusKit/Sources/StatusKit/Embed/StatusEmbeddedView.swift +++ b/Packages/StatusKit/Sources/StatusKit/Embed/StatusEmbeddedView.swift @@ -29,6 +29,7 @@ public struct StatusEmbeddedView: View { showActions: false)) .accessibilityLabel(status.content.asRawText) .environment(\.isCompact, true) + .environment(\.isMediaCompact, true) .environment(\.isStatusFocused, false) } Spacer() diff --git a/Packages/StatusKit/Sources/StatusKit/Row/Subviews/StatusRowMediaPreviewView.swift b/Packages/StatusKit/Sources/StatusKit/Row/Subviews/StatusRowMediaPreviewView.swift index 42f34383..edeb0b67 100644 --- a/Packages/StatusKit/Sources/StatusKit/Row/Subviews/StatusRowMediaPreviewView.swift +++ b/Packages/StatusKit/Sources/StatusKit/Row/Subviews/StatusRowMediaPreviewView.swift @@ -10,7 +10,7 @@ import SwiftUI public struct StatusRowMediaPreviewView: View { @Environment(\.openWindow) private var openWindow @Environment(\.extraLeadingInset) private var extraLeadingInset: CGFloat - @Environment(\.isCompact) private var isCompact: Bool + @Environment(\.isMediaCompact) private var isCompact: Bool @Environment(\.horizontalSizeClass) private var horizontalSizeClass @Environment(SceneDelegate.self) private var sceneDelegate @Environment(UserPreferences.self) private var preferences