@@ -48,6 +48,7 @@ class SettingsNotifier extends StateNotifier<SettingsState> {
4848 // ============== Initialization ==============
4949
5050 Future <void > _initializeSettings () async {
51+ await _loadSettingsFromStorage ();
5152 await _updateConnectionMethodFromFlowLine ();
5253 _ensureStaticGroups ();
5354 _isInitialized = true ;
@@ -109,16 +110,20 @@ class SettingsNotifier extends StateNotifier<SettingsState> {
109110 final savedGroup = state.groups[SettingsGroupId .trafficControl];
110111
111112 return SettingsFactory .createTrafficControlGroup (
112- splitTunnelEnabled: SettingsFactory .getSavedItemState (
113- savedGroup? .items,
114- SettingsItemId .splitTunnel,
115- ),
116- killSwitchEnabled: SettingsFactory .getSavedItemState (
117- savedGroup? .items,
118- SettingsItemId .killSwitch,
119- ),
120- );
113+ splitTunnelEnabled: SettingsFactory .getSavedItemState (
114+ savedGroup? .items,
115+ SettingsItemId .splitTunnel,
116+ ),
117+ killSwitchEnabled: SettingsFactory .getSavedItemState (
118+ savedGroup? .items,
119+ SettingsItemId .killSwitch,
120+ ),
121+ deepScanEnabled: SettingsFactory .getSavedItemState (
122+ savedGroup? .items,
123+ SettingsItemId .deepScan,
124+ ));
121125 }
126+
122127 bool isDeepScanEnabled () {
123128 final savedGroup = state.groups[SettingsGroupId .trafficControl];
124129 return SettingsFactory .getSavedItemState (
@@ -225,9 +230,33 @@ class SettingsNotifier extends StateNotifier<SettingsState> {
225230 }
226231 }
227232
233+ Future <void > _loadSettingsFromStorage () async {
234+ final jsonString =
235+ await _secureStorage? .read (SettingsStorageKey .appSettings);
236+
237+ if (jsonString == null ) return ;
238+
239+ try {
240+ final Map <String , dynamic > decoded = jsonDecode (jsonString);
241+
242+ final groups = decoded.map (
243+ (key, value) => MapEntry (
244+ key,
245+ SettingsGroup .fromJson (value),
246+ ),
247+ );
248+
249+ state = state.copyWith (groups: groups);
250+ debugPrint ('Settings loaded from storage' );
251+ } catch (e) {
252+ debugPrint ('Failed to load settings: $e ' );
253+ }
254+ }
255+
228256 // ============== Public Actions ==============
229257
230258 void toggleSetting (String groupId, String itemId, [BuildContext ? context]) {
259+ print ('Toggling setting: $groupId - $itemId ' );
231260 final group = state.groups[groupId];
232261 if (group == null ) return ;
233262
0 commit comments