@@ -9,19 +9,6 @@ import SwiftUI
99
1010@MainActor
1111public final class SuggestionWidgetController : NSObject {
12- class UserDefaultsObserver : NSObject {
13- var onChange : ( ( ) -> Void ) ?
14-
15- override func observeValue(
16- forKeyPath keyPath: String ? ,
17- of object: Any ? ,
18- change: [ NSKeyValueChangeKey : Any ] ? ,
19- context: UnsafeMutableRawPointer ?
20- ) {
21- onChange ? ( )
22- }
23- }
24-
2512 private lazy var widgetWindow = {
2613 let it = CanBecomeKeyWindow (
2714 contentRect: . zero,
@@ -119,8 +106,20 @@ public final class SuggestionWidgetController: NSObject {
119106 let suggestionPanelViewModel = SuggestionPanelViewModel ( )
120107 let chatWindowViewModel = ChatWindowViewModel ( )
121108
122- private var presentationModeChangeObserver = UserDefaultsObserver ( )
123- private var colorSchemeChangeObserver = UserDefaultsObserver ( )
109+ private var presentationModeChangeObserver = UserDefaultsObserver (
110+ object: UserDefaults . shared,
111+ forKeyPaths: [
112+ UserDefaultPreferenceKeys ( ) . suggestionPresentationMode. key,
113+ ] , context: nil
114+ )
115+ private var colorSchemeChangeObserver = UserDefaultsObserver (
116+ object: UserDefaults . shared, forKeyPaths: [
117+ UserDefaultPreferenceKeys ( ) . widgetColorScheme. key,
118+ ] , context: nil
119+ )
120+ private var systemColorSchemeChangeObserver = UserDefaultsObserver (
121+ object: UserDefaults . standard, forKeyPaths: [ " AppleInterfaceStyle " ] , context: nil
122+ )
124123 private var windowChangeObservationTask : Task < Void , Error > ?
125124 private var activeApplicationMonitorTask : Task < Void , Error > ?
126125 private var sourceEditorMonitorTask : Task < Void , Error > ?
@@ -175,13 +174,6 @@ public final class SuggestionWidgetController: NSObject {
175174 guard let self else { return }
176175 self . updateWindowLocation ( )
177176 }
178-
179- UserDefaults . shared. addObserver (
180- presentationModeChangeObserver,
181- forKeyPath: UserDefaultPreferenceKeys ( ) . suggestionPresentationMode. key,
182- options: . new,
183- context: nil
184- )
185177 }
186178
187179 Task { @MainActor in
@@ -222,20 +214,9 @@ public final class SuggestionWidgetController: NSObject {
222214 colorSchemeChangeObserver. onChange = {
223215 updateColorScheme ( )
224216 }
225-
226- UserDefaults . shared. addObserver (
227- colorSchemeChangeObserver,
228- forKeyPath: UserDefaultPreferenceKeys ( ) . widgetColorScheme. key,
229- options: . new,
230- context: nil
231- )
232-
233- UserDefaults . standard. addObserver (
234- colorSchemeChangeObserver,
235- forKeyPath: " AppleInterfaceStyle " ,
236- options: . new,
237- context: nil
238- )
217+ systemColorSchemeChangeObserver. onChange = {
218+ updateColorScheme ( )
219+ }
239220 }
240221 }
241222}
0 commit comments