mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
When AppLifecycleState is changed to resumed, check for data updates.
This commit is contained in:
@@ -89,11 +89,13 @@ class _SyncDataWidget extends StatefulWidget {
|
|||||||
State<_SyncDataWidget> createState() => _SyncDataWidgetState();
|
State<_SyncDataWidget> createState() => _SyncDataWidgetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _SyncDataWidgetState extends State<_SyncDataWidget> {
|
class _SyncDataWidgetState extends State<_SyncDataWidget> with WidgetsBindingObserver {
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
DataSync().addListener(update);
|
DataSync().addListener(update);
|
||||||
|
WidgetsBinding.instance.addObserver(this);
|
||||||
|
lastCheck = DateTime.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
void update() {
|
void update() {
|
||||||
@@ -106,6 +108,20 @@ class _SyncDataWidgetState extends State<_SyncDataWidget> {
|
|||||||
void dispose() {
|
void dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
DataSync().removeListener(update);
|
DataSync().removeListener(update);
|
||||||
|
WidgetsBinding.instance.removeObserver(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
late DateTime lastCheck;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||||
|
super.didChangeAppLifecycleState(state);
|
||||||
|
if(state == AppLifecycleState.resumed) {
|
||||||
|
if(DateTime.now().difference(lastCheck) > const Duration(minutes: 10)) {
|
||||||
|
lastCheck = DateTime.now();
|
||||||
|
DataSync().downloadData();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
Reference in New Issue
Block a user