import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:revoltvpn/logic/app_colors.dart'; final ValueNotifier rainEnabled = ValueNotifier(true); Future loadRainPref() async { final prefs = await SharedPreferences.getInstance(); rainEnabled.value = prefs.getBool('rain_effect_enabled') ?? true; } class RainToggleTile extends StatefulWidget { const RainToggleTile({super.key}); @override State createState() => _RainToggleTileState(); } class _RainToggleTileState extends State { bool _on = true; @override void initState() { super.initState(); _load(); } Future _load() async { await loadRainPref(); if (mounted) setState(() => _on = rainEnabled.value); } Future _toggle(bool value) async { final prefs = await SharedPreferences.getInstance(); final saved = await prefs.setBool('rain_effect_enabled', value); if (!saved || !mounted) return; rainEnabled.value = value; setState(() => _on = value); } @override Widget build(BuildContext context) { return SwitchListTile( title: const Text( 'Rain effect', style: TextStyle(color: AppColors.textWhite, fontSize: 15), ), value: _on, onChanged: _toggle, activeTrackColor: AppColors.accent.withAlpha(80), activeThumbColor: AppColors.accent, contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 4), ); } }