@@ -268,19 +268,26 @@ class SettingsPersistence:
268268 def __init__ (self , cache_handler : CacheHandler = None ):
269269 self ._cache_handler = cache_handler or CacheHandler (SETTINGS )
270270 self ._settings = None
271+ self ._settings_are_default = True
271272
272273 def get (self , user_tier : int , feature_flags : "FeatureFlags" = None ) -> Settings :
273274 """Load the user settings, either the ones stored on disk or getting
274275 default based on tier"""
275276 feature_flags = feature_flags or FeatureFlags .default ()
276277
277- if self ._settings is None :
278- raw_settings = self ._cache_handler .load ()
279- if raw_settings is None :
280- self ._settings = Settings .default (user_tier )
278+ if self ._settings is not None :
279+ if self ._settings_are_default :
281280 self ._update_default_settings_based_on_feature_flags (feature_flags )
282- else :
283- self ._settings = Settings .from_dict (raw_settings , user_tier )
281+
282+ return self ._settings
283+
284+ raw_settings = self ._cache_handler .load ()
285+ if raw_settings is None :
286+ self ._settings = Settings .default (user_tier )
287+ self ._update_default_settings_based_on_feature_flags (feature_flags )
288+ else :
289+ self ._settings = Settings .from_dict (raw_settings , user_tier )
290+ self ._settings_are_default = False
284291
285292 return self ._settings
286293
@@ -292,9 +299,11 @@ def save(self, settings: Settings):
292299 """Store settings to disk."""
293300 self ._cache_handler .save (settings .to_dict ())
294301 self ._settings = settings
302+ self ._settings_are_default = False
295303
296304 def delete (self ):
297305 """Deletes the file stored on disk containing the settings
298306 and resets internal settings property."""
299307 self ._cache_handler .remove ()
300308 self ._settings = None
309+ self ._settings_are_default = True
0 commit comments