This commit is contained in:
2026-05-11 17:22:04 +01:00
parent 60656d77e8
commit 1e38c4ad57
9 changed files with 2386 additions and 484 deletions

View File

@@ -33,13 +33,22 @@ class _SettingsScreenState extends State<SettingsScreen> {
_loadUserAvatar();
}
String _prefsKey(String key) {
final userId = supabase.auth.currentUser?.id ?? 'guest';
return '${key}_$userId';
}
Future<void> _loadUserAvatar() async {
final prefs = await SharedPreferences.getInstance();
final savedUrl = prefs.getString('meu_avatar_guardado');
final savedUrl = prefs.getString(_prefsKey('meu_avatar_guardado'));
if (mounted) {
setState(() {
if (savedUrl != null) _uploadedImageUrl = savedUrl;
if (savedUrl != null) {
_uploadedImageUrl = savedUrl;
} else {
_uploadedImageUrl = null;
}
_isMemoryLoaded = true;
});
}
@@ -58,7 +67,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
final urlDoSupabase = data['avatar_url'];
if (urlDoSupabase != savedUrl) {
await prefs.setString('meu_avatar_guardado', urlDoSupabase);
await prefs.setString(_prefsKey('meu_avatar_guardado'), urlDoSupabase);
setState(() {
_uploadedImageUrl = urlDoSupabase;
});
@@ -104,7 +113,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
});
final prefs = await SharedPreferences.getInstance();
await prefs.setString('meu_avatar_guardado', publicUrl);
await prefs.setString(_prefsKey('meu_avatar_guardado'), publicUrl);
if (mounted) {
setState(() {
@@ -354,13 +363,16 @@ class _SettingsScreenState extends State<SettingsScreen> {
onPressed: () async {
// 👇 AGORA LIMPA A EQUIPA E TUDO DA MEMÓRIA AO SAIR!
final prefs = await SharedPreferences.getInstance();
await prefs.remove('meu_avatar_guardado');
await prefs.remove('last_team_id');
await prefs.remove('last_team_name');
await prefs.remove('last_team_logo');
await prefs.remove('last_team_wins');
await prefs.remove('last_team_losses');
await prefs.remove('last_team_draws');
final userId = supabase.auth.currentUser?.id;
if (userId != null) {
await prefs.remove(_prefsKey('meu_avatar_guardado'));
await prefs.remove(_prefsKey('last_team_id'));
await prefs.remove(_prefsKey('last_team_name'));
await prefs.remove(_prefsKey('last_team_logo'));
await prefs.remove(_prefsKey('last_team_wins'));
await prefs.remove(_prefsKey('last_team_losses'));
await prefs.remove(_prefsKey('last_team_draws'));
}
await Supabase.instance.client.auth.signOut();
if (ctx.mounted) {