Skip to content

Commit 5aff9aa

Browse files
[VPNLINUX-1099] Ensure default settings use feature flags
1 parent 511a56f commit 5aff9aa

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

proton/vpn/core/settings.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

versions.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
version: 0.38.6
2+
time: 2024/12/16 10:00
3+
author: Alexandru Cheltuitor
4+
5+
urgency: low
6+
stability: unstable
7+
description:
8+
- Ensure default settings use feature flags even after login the next time they are fetched.
9+
---
110
version: 0.38.5
211
time: 2024/12/11 16:00
312
author: Alexandru Cheltuitor

0 commit comments

Comments
 (0)