From 2fc8e1205e1801f4b113c9b01631d4e57b5ed359 Mon Sep 17 00:00:00 2001 From: cranci1 <100066266+cranci1@users.noreply.github.com> Date: Wed, 11 Jun 2025 20:51:15 +0200 Subject: [PATCH] =?UTF-8?q?opssii=20=F0=9F=98=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sora/SoraApp.swift | 52 ++----------------- .../JavaScriptCore+Extensions.swift | 5 +- 2 files changed, 6 insertions(+), 51 deletions(-) diff --git a/Sora/SoraApp.swift b/Sora/SoraApp.swift index 8833a7d..802c3b7 100644 --- a/Sora/SoraApp.swift +++ b/Sora/SoraApp.swift @@ -6,51 +6,9 @@ // import SwiftUI -import UIKit - -class OrientationManager: ObservableObject { - static let shared = OrientationManager() - - @Published var isLocked = false - private var lockedOrientation: UIInterfaceOrientationMask = .all - - private init() {} - - func lockOrientation() { - let currentOrientation = UIApplication.shared.windows.first?.windowScene?.interfaceOrientation ?? .portrait - - switch currentOrientation { - case .portrait, .portraitUpsideDown: - lockedOrientation = .portrait - case .landscapeLeft, .landscapeRight: - lockedOrientation = .landscape - default: - lockedOrientation = .portrait - } - - isLocked = true - - UIDevice.current.setValue(currentOrientation.rawValue, forKey: "orientation") - UIViewController.attemptRotationToDeviceOrientation() - } - - func unlockOrientation(after delay: TimeInterval = 0.0) { - DispatchQueue.main.asyncAfter(deadline: .now() + delay) { - self.isLocked = false - self.lockedOrientation = .all - - UIViewController.attemptRotationToDeviceOrientation() - } - } - - func supportedOrientations() -> UIInterfaceOrientationMask { - return isLocked ? lockedOrientation : .all - } -} @main struct SoraApp: App { - @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate @StateObject private var settings = Settings() @StateObject private var moduleManager = ModuleManager() @StateObject private var librarykManager = LibraryManager() @@ -140,7 +98,9 @@ struct SoraApp: App { } } -class AppInfo: NSObject { +@objc class AppInfo: NSObject { + @objc static let shared = AppInfo() + @objc func getBundleIdentifier() -> String { return Bundle.main.bundleIdentifier ?? "me.cranci.sulfur" } @@ -159,9 +119,3 @@ class AppInfo: NSObject { return hasValidBundleId && hasValidDisplayName } } - -class AppDelegate: NSObject, UIApplicationDelegate { - func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { - return OrientationManager.shared.supportedOrientations() - } -} diff --git a/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift b/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift index dd4e9f2..0051c0e 100644 --- a/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift +++ b/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift @@ -10,7 +10,9 @@ import JavaScriptCore extension JSContext { func setupConsoleLogging() { let consoleObject = JSValue(newObjectIn: self) - let appInfoBridge = AppInfo() + let appInfoBridge = AppInfo.shared + + self.setObject(appInfoBridge, forKeyedSubscript: "AppInfo" as NSString) let consoleLogFunction: @convention(block) (String) -> Void = { message in Logger.shared.log(message, type: "Debug") @@ -28,7 +30,6 @@ extension JSContext { Logger.shared.log("JavaScript log: \(message)", type: "Debug") } self.setObject(logFunction, forKeyedSubscript: "log" as NSString) - self.setObject(appInfoBridge, forKeyedSubscript: "AppInfo" as NSString) } func setupNativeFetch() {