import SwiftUI import FlixyDesign import FlixyPlayback import PlexKit @main struct FlixyApp: App { /// Leben hier, nicht in einer View: sie gelten für die gesamte App, und /// ein Neuaufbau der Wurzelansicht darf weder die Anmeldung noch die /// eingestellte Farbe zurücksetzen. @State private var theme = FlixyTheme() @State private var session: FlixySession @State private var playback = PlaybackCoordinator() @State private var playbackSettings = PlaybackSettings() /// Beobachtet WLAN und Mobilfunk. Lebt hier, damit der Beobachter einmal /// läuft statt bei jedem Öffnen des Players neu zu starten. @State private var network = NetworkConditions() init() { let identity = PlexClientIdentity.current( product: Branding.plexProduct, version: Branding.version ) _session = State(initialValue: FlixySession( identity: identity, tokenStore: KeychainTokenStore(service: Branding.keychainService) )) } var body: some Scene { WindowGroup { RootView() .environment(session) .environment(playback) .environment(playbackSettings) .environment(network) .environment(theme) .flixyAccent(theme) // Der eigentliche Schalter für „nur dunkel" steht in der // Info.plist (UIUserInterfaceStyle). Diese Zeile ist die // Absicherung für SwiftUI-Vorschauen, die sie nicht lesen. .preferredColorScheme(.dark) .tint(theme.accentColor) } } }