From 7f9ba63006bf2ac1f3262218cb106fb3a0c49b16 Mon Sep 17 00:00:00 2001 From: marcoschmickler Date: Sun, 14 Jun 2026 00:01:30 +0200 Subject: [PATCH] svideo changes --- kplayer/SceneDelegate.swift | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 kplayer/SceneDelegate.swift diff --git a/kplayer/SceneDelegate.swift b/kplayer/SceneDelegate.swift new file mode 100644 index 0000000..b138aa6 --- /dev/null +++ b/kplayer/SceneDelegate.swift @@ -0,0 +1,48 @@ +// +// Created by Marco Schmickler. +// Copyright (c) 2023 Marco Schmickler. All rights reserved. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate, UISplitViewControllerDelegate { + + var window: UIWindow? + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + guard let _ = scene as? UIWindowScene else { return } + setupSplitViewController() + } + + func sceneDidBecomeActive(_ scene: UIScene) { + NetworkManager.sharedInstance.alive() + } + + func sceneDidEnterBackground(_ scene: UIScene) { + (UIApplication.shared.delegate as? AppDelegate)?.saveContext() + } + + private func setupSplitViewController() { + guard let split = window?.rootViewController as? UISplitViewController else { return } + + let detailNav = split.viewControllers[split.viewControllers.count - 1] as! UINavigationController + detailNav.topViewController!.navigationItem.leftBarButtonItem = split.displayModeButtonItem + split.delegate = self + + let masterNav = split.viewControllers[0] as! UINavigationController + let controller = masterNav.topViewController as! MasterViewController + controller.delegate = NetworkDelegate() + controller.model.items = LocalManager.sharedInstance.model!.items + } + + // MARK: - Split view + + func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool { + if let nav = secondaryViewController as? UINavigationController, + let detail = nav.topViewController as? DetailViewController, + detail.detailItem == nil { + return true + } + return false + } +}