Skip to content

Commit 920bd75

Browse files
committed
feat(tabmoney): Atualização do usuário quando abrir o App
1 parent 3c0e71f commit 920bd75

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

lib/src/controllers/app.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@ import 'package:flutter/material.dart';
44
import 'package:tabnews/src/constants.dart';
55
import 'package:tabnews/src/models/user.dart';
66
import 'package:tabnews/src/preferences.dart';
7+
import 'package:tabnews/src/services/auth.dart';
78

89
class AppController {
910
static final AppController _singleton = AppController._internal();
1011

12+
static final AuthService _authService = AuthService();
13+
1114
factory AppController() {
1215
return _singleton;
1316
}
@@ -39,4 +42,11 @@ class AppController {
3942

4043
return User.fromJson({});
4144
}
45+
46+
static void updateUser() async {
47+
var userRefresh = await _authService.fetchUser(auth.value);
48+
49+
Preferences.setString(_userKey, jsonEncode(userRefresh.data));
50+
user.value = _getLoggedUser();
51+
}
4252
}

lib/src/ui/layouts/tab.dart

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class TabLayout extends StatefulWidget {
1616
State<TabLayout> createState() => _TabLayoutState();
1717
}
1818

19-
class _TabLayoutState extends State<TabLayout> {
19+
class _TabLayoutState extends State<TabLayout> with WidgetsBindingObserver {
2020
List<ScrollController> pagesScrollController = [
2121
ScrollController(),
2222
ScrollController(),
@@ -51,6 +51,26 @@ class _TabLayoutState extends State<TabLayout> {
5151
});
5252
}
5353

54+
@override
55+
void initState() {
56+
WidgetsBinding.instance.addObserver(this);
57+
super.initState();
58+
}
59+
60+
@override
61+
void dispose() {
62+
WidgetsBinding.instance.removeObserver(this);
63+
64+
super.dispose();
65+
}
66+
67+
@override
68+
void didChangeAppLifecycleState(AppLifecycleState state) {
69+
if (AppController.isLoggedIn.value && state == AppLifecycleState.resumed) {
70+
AppController.updateUser();
71+
}
72+
}
73+
5474
@override
5575
Widget build(BuildContext context) {
5676
return Scaffold(

0 commit comments

Comments
 (0)