diff --git a/lib/features/iptv/providers/settings_provider.dart b/lib/features/iptv/providers/settings_provider.dart index 92dc4a7..976f09d 100644 --- a/lib/features/iptv/providers/settings_provider.dart +++ b/lib/features/iptv/providers/settings_provider.dart @@ -236,6 +236,16 @@ class IptvSettingsNotifier extends StateNotifier { IptvSettingsNotifier(this._ref) : super(const IptvSettings()) { _loadSettings(); + _setupAuthListener(); + } + + void _setupAuthListener() { + _ref.listen(authProvider, (previous, next) { + if (previous?.isAuthenticated == false && next.isAuthenticated) { + // User just logged in, sync settings from API + _fetchFromApi(); + } + }); } /// Load settings from SharedPreferences and then API diff --git a/lib/features/iptv/widgets/settings_tab.dart b/lib/features/iptv/widgets/settings_tab.dart index 3a276cd..d24beb2 100644 --- a/lib/features/iptv/widgets/settings_tab.dart +++ b/lib/features/iptv/widgets/settings_tab.dart @@ -470,10 +470,15 @@ class _SettingsTabState extends ConsumerState with SingleTickerProv style: FilledButton.styleFrom(backgroundColor: Colors.orange), onPressed: () { Navigator.pop(context); - // Clear PaintingCache + + // Clear Flutter Image Cache PaintingBinding.instance.imageCache.clear(); PaintingBinding.instance.imageCache.clearLiveImages(); + // Clear Browser Local Storage (SharedPreferences backend for Web) + html.window.localStorage.clear(); + html.window.sessionStorage.clear(); + // Reload application html.window.location.reload(); }, diff --git a/verify_settings_fix.txt b/verify_settings_fix.txt new file mode 100644 index 0000000..f27a97a Binary files /dev/null and b/verify_settings_fix.txt differ