diff --git a/Delta.xcodeproj/project.pbxproj b/Delta.xcodeproj/project.pbxproj index 47a6583..d4fb231 100644 --- a/Delta.xcodeproj/project.pbxproj +++ b/Delta.xcodeproj/project.pbxproj @@ -176,6 +176,7 @@ D539103229E88B6C0006B350 /* DeltaPreviews.h in Headers */ = {isa = PBXBuildFile; fileRef = D539103129E88B6C0006B350 /* DeltaPreviews.h */; settings = {ATTRIBUTES = (Public, ); }; }; D539104029E88BC40006B350 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D539103F29E88BC40006B350 /* ContentView.swift */; }; D54F710229E89DCB009C069A /* SettingsUserInfoKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D54F710129E89DCB009C069A /* SettingsUserInfoKey.swift */; }; + D54F710429E89DFC009C069A /* NotificationName+Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D54F710329E89DFC009C069A /* NotificationName+Settings.swift */; }; D5864970297734280081477E /* CheatMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = D586496F297734280081477E /* CheatMetadata.swift */; }; D586497229774ABD0081477E /* CheatBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D586497129774ABD0081477E /* CheatBase.swift */; }; D5864978297756CE0081477E /* CheatBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5864977297756CE0081477E /* CheatBaseView.swift */; }; @@ -407,6 +408,7 @@ D539103129E88B6C0006B350 /* DeltaPreviews.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeltaPreviews.h; sourceTree = ""; }; D539103F29E88BC40006B350 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; D54F710129E89DCB009C069A /* SettingsUserInfoKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsUserInfoKey.swift; sourceTree = ""; }; + D54F710329E89DFC009C069A /* NotificationName+Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationName+Settings.swift"; sourceTree = ""; }; D586496F297734280081477E /* CheatMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheatMetadata.swift; sourceTree = ""; }; D586497129774ABD0081477E /* CheatBase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheatBase.swift; sourceTree = ""; }; D5864977297756CE0081477E /* CheatBaseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheatBaseView.swift; sourceTree = ""; }; @@ -1011,10 +1013,19 @@ children = ( D5A9BFFD29DDECF100A8D610 /* Feature.swift */, D517F6BB29E737F5000D14D0 /* Types */, + D5D7C1F829E60E8600663793 /* Extensions */, ); path = DeltaFeatures; sourceTree = ""; }; + D5D7C1F829E60E8600663793 /* Extensions */ = { + isa = PBXGroup; + children = ( + D54F710329E89DFC009C069A /* NotificationName+Settings.swift */, + ); + path = Extensions; + sourceTree = ""; + }; FD1E8AE87FA2DB8793F7B937 /* Pods */ = { isa = PBXGroup; children = ( @@ -1495,6 +1506,7 @@ files = ( D517F6BA29E730DA000D14D0 /* SettingsName.swift in Sources */, D5D7C20429E60F2000663793 /* Feature.swift in Sources */, + D54F710429E89DFC009C069A /* NotificationName+Settings.swift in Sources */, D54F710229E89DCB009C069A /* SettingsUserInfoKey.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Delta/Emulation/GameViewController.swift b/Delta/Emulation/GameViewController.swift index 0089c6a..2d417e4 100644 --- a/Delta/Emulation/GameViewController.swift +++ b/Delta/Emulation/GameViewController.swift @@ -203,7 +203,7 @@ class GameViewController: DeltaCore.GameViewController NotificationCenter.default.addObserver(self, selector: #selector(GameViewController.didEnterBackground(with:)), name: UIApplication.didEnterBackgroundNotification, object: UIApplication.shared) - NotificationCenter.default.addObserver(self, selector: #selector(GameViewController.settingsDidChange(with:)), name: .settingsDidChange, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(GameViewController.settingsDidChange(with:)), name: Settings.didChangeNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(GameViewController.deepLinkControllerLaunchGame(with:)), name: .deepLinkControllerLaunchGame, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(GameViewController.didActivateGyro(with:)), name: GBA.didActivateGyroNotification, object: nil) diff --git a/Delta/Extensions/ServerManager+Delta.swift b/Delta/Extensions/ServerManager+Delta.swift index ce69c80..a8e0c8b 100644 --- a/Delta/Extensions/ServerManager+Delta.swift +++ b/Delta/Extensions/ServerManager+Delta.swift @@ -17,7 +17,7 @@ extension ServerManager { func prepare() { - NotificationCenter.default.addObserver(self, selector: #selector(ServerManager.didChangeJITMode(_:)), name: .settingsDidChange, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(ServerManager.didChangeJITMode(_:)), name: Settings.didChangeNotification, object: nil) #if DEBUG if ProcessInfo.processInfo.isDebugging diff --git a/Delta/Game Selection/GamesViewController.swift b/Delta/Game Selection/GamesViewController.swift index f28e975..3ef32e7 100644 --- a/Delta/Game Selection/GamesViewController.swift +++ b/Delta/Game Selection/GamesViewController.swift @@ -78,7 +78,7 @@ class GamesViewController: UIViewController NotificationCenter.default.addObserver(self, selector: #selector(GamesViewController.syncingDidStart(_:)), name: SyncCoordinator.didStartSyncingNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(GamesViewController.syncingDidFinish(_:)), name: SyncCoordinator.didFinishSyncingNotification, object: nil) - NotificationCenter.default.addObserver(self, selector: #selector(GamesViewController.settingsDidChange(_:)), name: .settingsDidChange, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(GamesViewController.settingsDidChange(_:)), name: Settings.didChangeNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(GamesViewController.emulationDidQuit(_:)), name: EmulatorCore.emulationDidQuitNotification, object: nil) } } diff --git a/Delta/Settings/Settings.swift b/Delta/Settings/Settings.swift index 81fbe1b..5ca84f3 100644 --- a/Delta/Settings/Settings.swift +++ b/Delta/Settings/Settings.swift @@ -14,11 +14,6 @@ import MelonDSDeltaCore import Roxas -extension Notification.Name -{ - static let settingsDidChange = Notification.Name("SettingsDidChangeNotification") -} - extension Settings.NotificationUserInfoKey { static let system: Settings.NotificationUserInfoKey = "system" @@ -48,6 +43,8 @@ extension Settings typealias Name = SettingsName typealias NotificationUserInfoKey = SettingsUserInfoKey + + static let didChangeNotification = Notification.Name.settingsDidChange } struct Settings @@ -81,7 +78,7 @@ extension Settings static var localControllerPlayerIndex: Int? = 0 { didSet { guard self.localControllerPlayerIndex != oldValue else { return } - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: Name.localControllerPlayerIndex]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: Name.localControllerPlayerIndex]) } } @@ -89,7 +86,7 @@ extension Settings set { guard newValue != self.translucentControllerSkinOpacity else { return } UserDefaults.standard.translucentControllerSkinOpacity = newValue - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: Name.translucentControllerSkinOpacity]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: Name.translucentControllerSkinOpacity]) } get { return UserDefaults.standard.translucentControllerSkinOpacity } } @@ -158,7 +155,7 @@ extension Settings } set { UserDefaults.standard.syncingService = newValue?.rawValue - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: Name.syncingService]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: Name.syncingService]) } } @@ -169,7 +166,7 @@ extension Settings } set { UserDefaults.standard.isButtonHapticFeedbackEnabled = newValue - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: Name.isButtonHapticFeedbackEnabled]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: Name.isButtonHapticFeedbackEnabled]) } } @@ -180,7 +177,7 @@ extension Settings } set { UserDefaults.standard.isThumbstickHapticFeedbackEnabled = newValue - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: Name.isThumbstickHapticFeedbackEnabled]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: Name.isThumbstickHapticFeedbackEnabled]) } } @@ -207,7 +204,7 @@ extension Settings } set { UserDefaults.standard.isAltJITEnabled = newValue - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: Name.isAltJITEnabled]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: Name.isAltJITEnabled]) } } @@ -218,7 +215,7 @@ extension Settings } set { UserDefaults.standard.respectSilentMode = newValue - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: Name.respectSilentMode]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: Name.respectSilentMode]) } } @@ -239,7 +236,7 @@ extension Settings let key = self.preferredCoreSettingsKey(for: gameType) UserDefaults.standard.set(core.identifier, forKey: key) - NotificationCenter.default.post(name: .settingsDidChange, object: nil, userInfo: [NotificationUserInfoKey.name: key, NotificationUserInfoKey.core: core]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: nil, userInfo: [NotificationUserInfoKey.name: key, NotificationUserInfoKey.core: core]) } static func preferredControllerSkin(for system: System, traits: DeltaCore.ControllerSkin.Traits) -> ControllerSkin? @@ -290,7 +287,7 @@ extension Settings UserDefaults.standard.set(controllerSkin?.identifier, forKey: userDefaultKey) - NotificationCenter.default.post(name: .settingsDidChange, object: controllerSkin, userInfo: [NotificationUserInfoKey.name: Name.preferredControllerSkin, NotificationUserInfoKey.system: system, NotificationUserInfoKey.traits: traits]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: controllerSkin, userInfo: [NotificationUserInfoKey.name: Name.preferredControllerSkin, NotificationUserInfoKey.system: system, NotificationUserInfoKey.traits: traits]) } static func preferredControllerSkin(for game: Game, traits: DeltaCore.ControllerSkin.Traits) -> ControllerSkin? @@ -348,7 +345,7 @@ extension Settings if let system = System(gameType: game.type) { - NotificationCenter.default.post(name: .settingsDidChange, object: controllerSkin, userInfo: [NotificationUserInfoKey.name: Name.preferredControllerSkin, NotificationUserInfoKey.system: system, NotificationUserInfoKey.traits: traits]) + NotificationCenter.default.post(name: Settings.didChangeNotification, object: controllerSkin, userInfo: [NotificationUserInfoKey.name: Name.preferredControllerSkin, NotificationUserInfoKey.system: system, NotificationUserInfoKey.traits: traits]) } } } diff --git a/Delta/Settings/SettingsViewController.swift b/Delta/Settings/SettingsViewController.swift index abaeb91..23f28a2 100644 --- a/Delta/Settings/SettingsViewController.swift +++ b/Delta/Settings/SettingsViewController.swift @@ -78,7 +78,7 @@ class SettingsViewController: UITableViewController { super.init(coder: aDecoder) - NotificationCenter.default.addObserver(self, selector: #selector(SettingsViewController.settingsDidChange(with:)), name: .settingsDidChange, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(SettingsViewController.settingsDidChange(with:)), name: Settings.didChangeNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(SettingsViewController.externalGameControllerDidConnect(_:)), name: .externalGameControllerDidConnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(SettingsViewController.externalGameControllerDidDisconnect(_:)), name: .externalGameControllerDidDisconnect, object: nil) } diff --git a/DeltaFeatures/Extensions/NotificationName+Settings.swift b/DeltaFeatures/Extensions/NotificationName+Settings.swift new file mode 100644 index 0000000..d4a75cd --- /dev/null +++ b/DeltaFeatures/Extensions/NotificationName+Settings.swift @@ -0,0 +1,14 @@ +// +// Notification+Settings.swift +// DeltaFeatures +// +// Created by Riley Testut on 4/13/23. +// Copyright © 2023 Riley Testut. All rights reserved. +// + +import Foundation + +public extension Notification.Name +{ + static let settingsDidChange = Notification.Name("SettingsDidChangeNotification") +}