From 1ae9dea85ceeab2b59adf0c621ccbe728449265b Mon Sep 17 00:00:00 2001 From: epokuser <81563688+epokuser@users.noreply.github.com> Date: Fri, 26 Jun 2026 01:29:55 +0530 Subject: [PATCH] refacor or something --- LidAngleSensor.xcodeproj/project.pbxproj | 22 +- .../UserInterfaceState.xcuserstate | Bin 0 -> 207252 bytes .../xcschemes/xcschememanagement.plist | 14 + LidAngleSensor/Info.plist | 2 + LidAngleSensor/LidAngleSensorApp.swift | 264 +++++++++++++++--- LidAngleSensor/MenuBarView.swift | 52 +++- 6 files changed, 311 insertions(+), 43 deletions(-) create mode 100644 LidAngleSensor.xcodeproj/project.xcworkspace/xcuserdata/sd.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 LidAngleSensor.xcodeproj/xcuserdata/sd.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/LidAngleSensor.xcodeproj/project.pbxproj b/LidAngleSensor.xcodeproj/project.pbxproj index 6110b1f..c1c3403 100644 --- a/LidAngleSensor.xcodeproj/project.pbxproj +++ b/LidAngleSensor.xcodeproj/project.pbxproj @@ -141,7 +141,9 @@ EA5683D52F704307005813E9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = NO; ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -192,7 +194,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 14.6; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -205,7 +207,9 @@ EA5683D62F704307005813E9 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = NO; ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = arm64; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -250,7 +254,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 14.6; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; @@ -262,10 +266,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = SM75355Y6R; + DEVELOPMENT_TEAM = ""; ENABLE_APP_SANDBOX = NO; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; @@ -278,10 +284,11 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 26.0; MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = gold.samhenri.LidAngleSensor; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; REGISTER_APP_GROUPS = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_APPROACHABLE_CONCURRENCY = YES; @@ -296,10 +303,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = SM75355Y6R; + DEVELOPMENT_TEAM = ""; ENABLE_APP_SANDBOX = NO; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; @@ -312,10 +321,11 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 26.0; MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = gold.samhenri.LidAngleSensor; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; REGISTER_APP_GROUPS = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_APPROACHABLE_CONCURRENCY = YES; diff --git a/LidAngleSensor.xcodeproj/project.xcworkspace/xcuserdata/sd.xcuserdatad/UserInterfaceState.xcuserstate b/LidAngleSensor.xcodeproj/project.xcworkspace/xcuserdata/sd.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..2aab096aefea103630c13f71ef066d82ee5ccae3 GIT binary patch literal 207252 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 g>JZF2(^IYh;#B;glD$li^F3)wIO`aP(H+!~v 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 R|NXPSN%sH$BQ_%a{{esd#|!`f literal 0 HcmV?d00001 diff --git a/LidAngleSensor.xcodeproj/xcuserdata/sd.xcuserdatad/xcschemes/xcschememanagement.plist b/LidAngleSensor.xcodeproj/xcuserdata/sd.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4f4f967 --- /dev/null +++ b/LidAngleSensor.xcodeproj/xcuserdata/sd.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + LidAngleSensor.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/LidAngleSensor/Info.plist b/LidAngleSensor/Info.plist index 894bbe2..4047fb4 100644 --- a/LidAngleSensor/Info.plist +++ b/LidAngleSensor/Info.plist @@ -2,6 +2,8 @@ + LSUIElement + CFBundleIcons ISGraphicIconConfiguration diff --git a/LidAngleSensor/LidAngleSensorApp.swift b/LidAngleSensor/LidAngleSensorApp.swift index 9441617..3a89ead 100644 --- a/LidAngleSensor/LidAngleSensorApp.swift +++ b/LidAngleSensor/LidAngleSensorApp.swift @@ -1,46 +1,240 @@ -// -// LidAngleSensorApp.swift -// LidAngleSensor -// -// Created by Sam on 2026-03-22. -// - import SwiftUI @main struct LidAngleSensorApp: App { - @State private var sensor = LidAngleSensor() - @State private var audioController = AudioController() - + @NSApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate + var body: some Scene { - Window("Lid Angle Sensor", id: "main") { - ContentView() - .environment(\.lidAngleSensor, sensor) - .environment(\.audioController, audioController) - .onAppear { - NSWindow.allowsAutomaticWindowTabbing = false - } - } - .windowResizability(.contentSize) - .commands { - CommandGroup(after: .appInfo) { - Link(destination: URL(string: "https://github.com/samhenrigold/LidAngleSensor")!) { - Label("View Source", systemImage: "swift") - } + Settings { + EmptyView() + } + } +} + +@MainActor +private final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { + private static let warningAngle = 119.0 + private static let statusItemSidePadding = 1.0 + private static let statusItemIconTitleSpacing = 1.0 + private static let statusItemClippingAllowance = 3.0 + private static let statusItemImageSize = NSSize(width: 14, height: 14) + + private let sensor = LidAngleSensor() + private let audioController = AudioController() + private let statusMenu = NSMenu() + + private var statusItem: NSStatusItem? + private var updateTimer: Timer? + private var didShowWarning = false + + func applicationDidFinishLaunching(_ notification: Notification) { + NSWindow.allowsAutomaticWindowTabbing = false + NSApplication.shared.setActivationPolicy(.accessory) + + createStatusItem() + sensor.start() + + updateTimer = .scheduledTimer(withTimeInterval: 1.0 / 30.0, repeats: true) { [weak self] _ in + MainActor.assumeIsolated { + self?.handleSensorUpdate() } } + } + + func applicationWillTerminate(_ notification: Notification) { + updateTimer?.invalidate() + updateTimer = nil + sensor.stop() + } + + private func createStatusItem() { + let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) + statusMenu.delegate = self + statusItem.menu = statusMenu + + if let button = statusItem.button { + let image = NSImage(systemSymbolName: "angle", accessibilityDescription: "Lid angle") + image?.isTemplate = true + image?.size = Self.statusItemImageSize + + button.image = image + button.imagePosition = .imageLeading + button.imageHugsTitle = true + button.toolTip = "Lid angle" + } + + self.statusItem = statusItem + updateStatusItem() + rebuildMenu(statusMenu) + } + + private func handleSensorUpdate() { + audioController.feed(angle: sensor.angle, velocity: sensor.velocity) + updateStatusItem() + + guard sensor.isAvailable else { return } + + if sensor.angle >= Self.warningAngle { + guard !didShowWarning else { return } + didShowWarning = true + showLidAngleWarning() + } else { + didShowWarning = false + } + } + + private func updateStatusItem() { + guard let button = statusItem?.button else { return } + + let angleText = sensor.isAvailable + ? "\(sensor.angle.formatted(.number.precision(.fractionLength(0))))°" + : "" + + let attributedTitle = NSAttributedString( + string: angleText, + attributes: [ + .font: NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .medium), + .foregroundColor: NSColor.labelColor + ] + ) + + button.attributedTitle = attributedTitle + button.imagePosition = sensor.isAvailable ? .imageLeading : .imageOnly + button.imageHugsTitle = true + updateStatusItemLength(title: attributedTitle) + } + + private func updateStatusItemLength(title: NSAttributedString) { + let imageWidth = Self.statusItemImageSize.width + let titleWidth = sensor.isAvailable ? title.size().width : 0 + let spacing = sensor.isAvailable ? Self.statusItemIconTitleSpacing : 0 + let sidePadding = Self.statusItemSidePadding * 2 + let clippingAllowance = sensor.isAvailable ? Self.statusItemClippingAllowance : 0 + + statusItem?.length = ceil(imageWidth + titleWidth + spacing + sidePadding + clippingAllowance) + } + + func menuWillOpen(_ menu: NSMenu) { + rebuildMenu(menu) + } + + private func rebuildMenu(_ menu: NSMenu) { + menu.removeAllItems() - MenuBarExtra { - MenuBarView() - .environment(\.lidAngleSensor, sensor) - .environment(\.audioController, audioController) - } label: { - Image(systemName: "angle") - - if sensor.isAvailable { - Text("\(sensor.angle, format: .number.precision(.fractionLength(0)))°") - .monospacedDigit() - } + if !sensor.isAvailable { + let item = NSMenuItem(title: "Sensor Not Available", action: nil, keyEquivalent: "") + item.isEnabled = false + menu.addItem(item) + } + + if sensor.angle >= Self.warningAngle { + let item = NSMenuItem(title: "Warning: 119° reached", action: nil, keyEquivalent: "") + item.image = NSImage(systemSymbolName: "exclamationmark.triangle.fill", accessibilityDescription: nil) + item.isEnabled = false + menu.addItem(item) + } + + let soundModeItem = NSMenuItem(title: "Sound Mode", action: nil, keyEquivalent: "") + let soundModeMenu = NSMenu() + for mode in AudioMode.allCases { + let item = NSMenuItem(title: mode.rawValue, action: #selector(selectSoundMode(_:)), keyEquivalent: "") + item.target = self + item.representedObject = mode + item.state = audioController.mode == mode ? .on : .off + soundModeMenu.addItem(item) + } + soundModeItem.submenu = soundModeMenu + menu.addItem(soundModeItem) + + let startStopItem = NSMenuItem( + title: audioController.isPlaying ? "🖐Stop" : "✅Start", + action: #selector(toggleAudio), + keyEquivalent: "" + ) + startStopItem.target = self + startStopItem.isEnabled = sensor.isAvailable + menu.addItem(startStopItem) + + menu.addItem(.separator()) + + let showItem = NSMenuItem(title: "👁Show", action: #selector(showApplication), keyEquivalent: "") + showItem.target = self + menu.addItem(showItem) + + let hideItem = NSMenuItem(title: "🔼Hide", action: #selector(hideApplication), keyEquivalent: "") + hideItem.target = self + menu.addItem(hideItem) + + let quitItem = NSMenuItem(title: "❌Quit", action: #selector(quit), keyEquivalent: "") + quitItem.target = self + menu.addItem(quitItem) + } + + @objc private func selectSoundMode(_ sender: NSMenuItem) { + guard let mode = sender.representedObject as? AudioMode else { return } + audioController.mode = mode + } + + @objc private func toggleAudio() { + audioController.toggle() + } + + @objc private func showApplication() { + AppWindowPresenter.show(sensor: sensor, audioController: audioController) + } + + @objc private func hideApplication() { + NSApplication.shared.windows.forEach { $0.orderOut(nil) } + NSApplication.shared.setActivationPolicy(.accessory) + } + + @objc private func quit() { + NSApplication.shared.terminate(nil) + } + + private func showLidAngleWarning() { + NSSound.beep() + + let alert = NSAlert() + alert.alertStyle = .warning + alert.messageText = "Lid angle warning" + alert.informativeText = "The lid sensor has reached 119 degrees (Fully Open)." + alert.addButton(withTitle: "OK") + alert.runModal() + } +} + +@MainActor +private enum AppWindowPresenter { + private static var window: NSWindow? + + static func show(sensor: LidAngleSensor, audioController: AudioController) { + NSApplication.shared.setActivationPolicy(.regular) + + if let window = Self.window { + window.makeKeyAndOrderFront(nil) + NSApplication.shared.activate(ignoringOtherApps: true) + return } + + let contentView = ContentView() + .environment(\.lidAngleSensor, sensor) + .environment(\.audioController, audioController) + + let window = NSWindow( + contentRect: NSRect(x: 0, y: 0, width: 900, height: 667), + styleMask: [.titled, .closable, .miniaturizable, .resizable], + backing: .buffered, + defer: false + ) + + window.title = "Lid Angle Sensor" + window.contentViewController = NSHostingController(rootView: contentView) + window.isReleasedWhenClosed = false + window.center() + window.makeKeyAndOrderFront(nil) + + Self.window = window + NSApplication.shared.activate(ignoringOtherApps: true) } } diff --git a/LidAngleSensor/MenuBarView.swift b/LidAngleSensor/MenuBarView.swift index 29ca43f..c9876eb 100644 --- a/LidAngleSensor/MenuBarView.swift +++ b/LidAngleSensor/MenuBarView.swift @@ -17,6 +17,11 @@ struct MenuBarView: View { if !sensor.isAvailable { Text("Sensor Not Available") } + + if sensor.angle >= 119 { + Label("Warning: 119° reached", systemImage: "exclamationmark.triangle.fill") + + } Section { Picker("Sound Mode", selection: $controller.mode) { @@ -26,14 +31,57 @@ struct MenuBarView: View { } .pickerStyle(.inline) - Button(audioController.isPlaying ? "Stop" : "Start") { + Button(audioController.isPlaying ? "🖐Stop" : "✅Start") { audioController.toggle() } } .disabled(!sensor.isAvailable) + + Button("👁Show") { + AppWindowPresenter.show(sensor: sensor, audioController: audioController) + } - Button("Quit") { + Button("❌Quit") { NSApplication.shared.terminate(nil) } + Button("🔼Hide") { + NSApplication.shared.windows.forEach { $0.orderOut(nil) } + NSApplication.shared.setActivationPolicy(.accessory) + } + } +} + +@MainActor +private enum AppWindowPresenter { + private static var window: NSWindow? + + static func show(sensor: LidAngleSensor, audioController: AudioController) { + NSApplication.shared.setActivationPolicy(.regular) + + if let window = Self.window { + window.makeKeyAndOrderFront(nil) + NSApplication.shared.activate(ignoringOtherApps: true) + return + } + + let contentView = ContentView() + .environment(\.lidAngleSensor, sensor) + .environment(\.audioController, audioController) + + let window = NSWindow( + contentRect: NSRect(x: 0, y: 0, width: 900, height: 667), + styleMask: [.titled, .closable, .miniaturizable, .resizable], + backing: .buffered, + defer: false + ) + + window.title = "Lid Angle Sensor" + window.contentViewController = NSHostingController(rootView: contentView) + window.isReleasedWhenClosed = false + window.center() + window.makeKeyAndOrderFront(nil) + + Self.window = window + NSApplication.shared.activate(ignoringOtherApps: true) } }