From 42fb670abb48902f3bcb94b59338f7c83385c26f Mon Sep 17 00:00:00 2001 From: Francesco <100066266+cranci1@users.noreply.github.com> Date: Tue, 3 Jun 2025 20:08:41 +0200 Subject: [PATCH] Revert "test again" This reverts commit 491b7175b5d10dd7bdd0c18012dcf703b498e322. --- .../CustomPlayer/CustomPlayer.swift | 8 ++-- Sora/Utils/MediaPlayer/VideoPlayer.swift | 1 - Sora/Views/MediaInfoView/MediaInfoView.swift | 42 +++++-------------- .../SettingsSubViews/SettingsViewLogger.swift | 38 ++++------------- 4 files changed, 21 insertions(+), 68 deletions(-) diff --git a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift index e047658..03fba46 100644 --- a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift +++ b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift @@ -41,7 +41,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele var currentTimeVal: Double = 0.0 var duration: Double = 0.0 var isVideoLoaded = false - var detachedWindow: UIWindow? private var isHoldPauseEnabled: Bool { UserDefaults.standard.bool(forKey: "holdForPauseEnabled") @@ -1828,15 +1827,16 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele } @objc func dismissTapped() { - dismiss(animated: true) { [weak self] in - self?.detachedWindow = nil + if let presentingViewController = self.presentingViewController { + presentingViewController.dismiss(animated: true, completion: nil) + } else { + dismiss(animated: true, completion: nil) } } @objc func watchNextTapped() { player.pause() dismiss(animated: true) { [weak self] in - self?.detachedWindow = nil self?.onWatchNext() } } diff --git a/Sora/Utils/MediaPlayer/VideoPlayer.swift b/Sora/Utils/MediaPlayer/VideoPlayer.swift index dd9c6e3..58a9a65 100644 --- a/Sora/Utils/MediaPlayer/VideoPlayer.swift +++ b/Sora/Utils/MediaPlayer/VideoPlayer.swift @@ -24,7 +24,6 @@ class VideoPlayerViewController: UIViewController { var episodeNumber: Int = 0 var episodeImageUrl: String = "" var mediaTitle: String = "" - var detachedWindow: UIWindow? init(module: ScrapingModule) { self.module = module diff --git a/Sora/Views/MediaInfoView/MediaInfoView.swift b/Sora/Views/MediaInfoView/MediaInfoView.swift index 2a40645..deaedb5 100644 --- a/Sora/Views/MediaInfoView/MediaInfoView.swift +++ b/Sora/Views/MediaInfoView/MediaInfoView.swift @@ -1370,7 +1370,11 @@ struct MediaInfoView: View { videoPlayerViewController.aniListID = itemID ?? 0 videoPlayerViewController.modalPresentationStyle = .overFullScreen - presentPlayerWithDetachedContext(videoPlayerViewController: videoPlayerViewController) + if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, + let window = windowScene.windows.first, + let currentVC = window.rootViewController?.presentedViewController ?? window.rootViewController { + currentVC.present(videoPlayerViewController, animated: true, completion: nil) + } return default: break @@ -1408,7 +1412,11 @@ struct MediaInfoView: View { customMediaPlayer.modalPresentationStyle = .overFullScreen Logger.shared.log("Opening custom media player with stream URL: \(url), and subtitles URL: \(String(describing: subtitles))", type: "Stream") - presentPlayerWithDetachedContext(customMediaPlayer: customMediaPlayer) + if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, + let window = windowScene.windows.first, + let currentVC = window.rootViewController?.presentedViewController ?? window.rootViewController { + currentVC.present(customMediaPlayer, animated: true, completion: nil) + } } } } @@ -1991,34 +1999,4 @@ struct MediaInfoView: View { } }.resume() } - - private func presentPlayerWithDetachedContext(videoPlayerViewController: VideoPlayerViewController) { - guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else { return } - - let detachedWindow = UIWindow(windowScene: windowScene) - let hostingController = UIViewController() - hostingController.view.backgroundColor = .clear - detachedWindow.rootViewController = hostingController - detachedWindow.backgroundColor = .clear - detachedWindow.windowLevel = .normal + 1 - detachedWindow.makeKeyAndVisible() - - videoPlayerViewController.detachedWindow = detachedWindow - hostingController.present(videoPlayerViewController, animated: true, completion: nil) - } - - private func presentPlayerWithDetachedContext(customMediaPlayer: CustomMediaPlayerViewController) { - guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else { return } - - let detachedWindow = UIWindow(windowScene: windowScene) - let hostingController = UIViewController() - hostingController.view.backgroundColor = .clear - detachedWindow.rootViewController = hostingController - detachedWindow.backgroundColor = .clear - detachedWindow.windowLevel = .normal + 1 - detachedWindow.makeKeyAndVisible() - - customMediaPlayer.detachedWindow = detachedWindow - hostingController.present(customMediaPlayer, animated: true, completion: nil) - } } diff --git a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewLogger.swift b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewLogger.swift index 4a70dc4..e0d32ee 100644 --- a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewLogger.swift +++ b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewLogger.swift @@ -62,18 +62,8 @@ fileprivate struct SettingsSection: View { struct SettingsViewLogger: View { @State private var logs: String = "" @State private var isLoading: Bool = true - @State private var showFullLogs: Bool = false @StateObject private var filterViewModel = LogFilterViewModel.shared - private let displayCharacterLimit = 50_000 - - var displayedLogs: String { - if showFullLogs || logs.count <= displayCharacterLimit { - return logs - } - return String(logs.suffix(displayCharacterLimit)) - } - var body: some View { ScrollView { VStack(spacing: 24) { @@ -89,26 +79,13 @@ struct SettingsViewLogger: View { .frame(maxWidth: .infinity, alignment: .center) .padding(.vertical, 20) } else { - VStack(alignment: .leading, spacing: 8) { - Text(displayedLogs) - .font(.footnote) - .foregroundColor(.secondary) - .frame(maxWidth: .infinity, alignment: .leading) - .textSelection(.enabled) - - if logs.count > displayCharacterLimit && !showFullLogs { - Button(action: { - showFullLogs = true - }) { - Text("Show More (\(logs.count - displayCharacterLimit) more characters)") - .font(.footnote) - .foregroundColor(.accentColor) - } - .padding(.top, 8) - } - } - .padding(.horizontal, 16) - .padding(.vertical, 12) + Text(logs) + .font(.footnote) + .foregroundColor(.secondary) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 16) + .padding(.vertical, 12) + .textSelection(.enabled) } } } @@ -162,7 +139,6 @@ struct SettingsViewLogger: View { await Logger.shared.clearLogsAsync() await MainActor.run { self.logs = "" - self.showFullLogs = false } } }