mirror of
https://github.com/yattee/yattee.git
synced 2024-12-22 21:43:41 +00:00
Set full screen views background color based on color scheme on tvOS (fixes #30)
This commit is contained in:
parent
5143c4f8ce
commit
941e6a909d
@ -10,8 +10,8 @@ extension Color {
|
|||||||
static let secondaryBackground = Color(UIColor.secondarySystemBackground)
|
static let secondaryBackground = Color(UIColor.secondarySystemBackground)
|
||||||
static let tertiaryBackground = Color(UIColor.tertiarySystemBackground)
|
static let tertiaryBackground = Color(UIColor.tertiarySystemBackground)
|
||||||
#else
|
#else
|
||||||
static let background = Color.black
|
static func background(scheme: ColorScheme) -> Color {
|
||||||
static let secondaryBackground = Color.black
|
scheme == .dark ? .black : .init(white: 0.8)
|
||||||
static let tertiaryBackground = Color.black
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ struct AddToPlaylistView: View {
|
|||||||
|
|
||||||
@State private var selectedPlaylistID: Playlist.ID = ""
|
@State private var selectedPlaylistID: Playlist.ID = ""
|
||||||
|
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
@Environment(\.presentationMode) private var presentationMode
|
@Environment(\.presentationMode) private var presentationMode
|
||||||
@EnvironmentObject<PlaylistsModel> private var model
|
@EnvironmentObject<PlaylistsModel> private var model
|
||||||
|
|
||||||
@ -37,7 +38,7 @@ struct AddToPlaylistView: View {
|
|||||||
.padding(.vertical)
|
.padding(.vertical)
|
||||||
#elseif os(tvOS)
|
#elseif os(tvOS)
|
||||||
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
||||||
.background(Color.tertiaryBackground)
|
.background(Color.background(scheme: colorScheme))
|
||||||
#else
|
#else
|
||||||
.padding(.vertical)
|
.padding(.vertical)
|
||||||
#endif
|
#endif
|
||||||
|
@ -10,6 +10,7 @@ struct PlaylistFormView: View {
|
|||||||
@State private var valid = false
|
@State private var valid = false
|
||||||
@State private var showingDeleteConfirmation = false
|
@State private var showingDeleteConfirmation = false
|
||||||
|
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
@Environment(\.presentationMode) private var presentationMode
|
@Environment(\.presentationMode) private var presentationMode
|
||||||
|
|
||||||
@EnvironmentObject<AccountsModel> private var accounts
|
@EnvironmentObject<AccountsModel> private var accounts
|
||||||
@ -77,7 +78,7 @@ struct PlaylistFormView: View {
|
|||||||
.frame(maxWidth: 1000)
|
.frame(maxWidth: 1000)
|
||||||
}
|
}
|
||||||
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
||||||
.background(Color.tertiaryBackground)
|
.background(Color.background(scheme: colorScheme))
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
.onChange(of: name) { _ in validate() }
|
.onChange(of: name) { _ in validate() }
|
||||||
|
@ -15,6 +15,7 @@ struct AccountForm: View {
|
|||||||
@State private var validationError: String?
|
@State private var validationError: String?
|
||||||
@State private var validationDebounce = Debounce()
|
@State private var validationDebounce = Debounce()
|
||||||
|
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
@Environment(\.presentationMode) private var presentationMode
|
@Environment(\.presentationMode) private var presentationMode
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@ -30,7 +31,7 @@ struct AccountForm: View {
|
|||||||
.padding(.vertical)
|
.padding(.vertical)
|
||||||
#elseif os(tvOS)
|
#elseif os(tvOS)
|
||||||
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
||||||
.background(Color.tertiaryBackground)
|
.background(Color.background(scheme: colorScheme))
|
||||||
#else
|
#else
|
||||||
.frame(width: 400, height: 145)
|
.frame(width: 400, height: 145)
|
||||||
#endif
|
#endif
|
||||||
|
@ -13,6 +13,7 @@ struct InstanceForm: View {
|
|||||||
@State private var validationError: String?
|
@State private var validationError: String?
|
||||||
@State private var validationDebounce = Debounce()
|
@State private var validationDebounce = Debounce()
|
||||||
|
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
@Environment(\.presentationMode) private var presentationMode
|
@Environment(\.presentationMode) private var presentationMode
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@ -32,7 +33,7 @@ struct InstanceForm: View {
|
|||||||
.padding(.vertical)
|
.padding(.vertical)
|
||||||
#elseif os(tvOS)
|
#elseif os(tvOS)
|
||||||
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
|
||||||
.background(Color.tertiaryBackground)
|
.background(Color.background(scheme: colorScheme))
|
||||||
#else
|
#else
|
||||||
.frame(width: 400, height: 190)
|
.frame(width: 400, height: 190)
|
||||||
#endif
|
#endif
|
||||||
|
@ -9,6 +9,8 @@ struct SettingsView: View {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
|
|
||||||
#if os(iOS)
|
#if os(iOS)
|
||||||
@Environment(\.presentationMode) private var presentationMode
|
@Environment(\.presentationMode) private var presentationMode
|
||||||
#endif
|
#endif
|
||||||
@ -102,7 +104,7 @@ struct SettingsView: View {
|
|||||||
InstanceForm(savedInstanceID: $savedFormInstanceID)
|
InstanceForm(savedInstanceID: $savedFormInstanceID)
|
||||||
}
|
}
|
||||||
#if os(tvOS)
|
#if os(tvOS)
|
||||||
.background(Color.black)
|
.background(Color.background(scheme: colorScheme))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ struct ChannelPlaylistView: View {
|
|||||||
|
|
||||||
@StateObject private var store = Store<ChannelPlaylist>()
|
@StateObject private var store = Store<ChannelPlaylist>()
|
||||||
|
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
|
|
||||||
#if os(iOS)
|
#if os(iOS)
|
||||||
@Environment(\.inNavigationView) private var inNavigationView
|
@Environment(\.inNavigationView) private var inNavigationView
|
||||||
#endif
|
#endif
|
||||||
@ -83,7 +85,7 @@ struct ChannelPlaylistView: View {
|
|||||||
.navigationTitle(playlist.title)
|
.navigationTitle(playlist.title)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
.background(Color.tertiaryBackground)
|
.background(Color.background(scheme: colorScheme))
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ struct ChannelVideosView: View {
|
|||||||
|
|
||||||
@StateObject private var store = Store<Channel>()
|
@StateObject private var store = Store<Channel>()
|
||||||
|
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
@Environment(\.presentationMode) private var presentationMode
|
@Environment(\.presentationMode) private var presentationMode
|
||||||
@Environment(\.inNavigationView) private var inNavigationView
|
@Environment(\.inNavigationView) private var inNavigationView
|
||||||
|
|
||||||
@ -105,8 +106,6 @@ struct ChannelVideosView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
.background(Color.tertiaryBackground)
|
|
||||||
#endif
|
#endif
|
||||||
#if os(iOS)
|
#if os(iOS)
|
||||||
.sheet(isPresented: $presentingShareSheet) {
|
.sheet(isPresented: $presentingShareSheet) {
|
||||||
@ -126,6 +125,9 @@ struct ChannelVideosView: View {
|
|||||||
return Group {
|
return Group {
|
||||||
if #available(macOS 12.0, *) {
|
if #available(macOS 12.0, *) {
|
||||||
content
|
content
|
||||||
|
#if os(tvOS)
|
||||||
|
.background(Color.background(scheme: colorScheme))
|
||||||
|
#endif
|
||||||
#if !os(iOS)
|
#if !os(iOS)
|
||||||
.focusScope(focusNamespace)
|
.focusScope(focusNamespace)
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,13 +25,19 @@ struct DetailBadge: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct DefaultStyleModifier: ViewModifier {
|
struct DefaultStyleModifier: ViewModifier {
|
||||||
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
|
|
||||||
func body(content: Content) -> some View {
|
func body(content: Content) -> some View {
|
||||||
if #available(iOS 15.0, macOS 12.0, tvOS 15.0, *) {
|
if #available(iOS 15.0, macOS 12.0, tvOS 15.0, *) {
|
||||||
content
|
content
|
||||||
.background(.thinMaterial)
|
.background(.thinMaterial)
|
||||||
} else {
|
} else {
|
||||||
content
|
content
|
||||||
|
#if os(tvOS)
|
||||||
|
.background(Color.background(scheme: colorScheme))
|
||||||
|
#else
|
||||||
.background(Color.background.opacity(0.95))
|
.background(Color.background.opacity(0.95))
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,9 @@ struct PlayerControlsView<Content: View>: View {
|
|||||||
.background(Material.ultraThinMaterial)
|
.background(Material.ultraThinMaterial)
|
||||||
} else {
|
} else {
|
||||||
controls
|
controls
|
||||||
|
#if !os(tvOS)
|
||||||
.background(Color.tertiaryBackground)
|
.background(Color.tertiaryBackground)
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user