feat: RefreshCalendar event

release/mobdr-v0.0.1
Frédérik Benoist 2023-05-17 05:56:23 +02:00
parent f1db5e571f
commit fe798b6ae2
3 changed files with 24 additions and 1 deletions

View File

@ -36,3 +36,12 @@ class VisitPhotoCountEvent extends AppEvent {
@override @override
List<Object?> get props => [id_visite, photoCount]; List<Object?> get props => [id_visite, photoCount];
} }
class RefreshCalendarEvent extends AppEvent {
RefreshCalendarEvent(this.refreshDate);
final String refreshDate;
@override
List<Object?> get props => [refreshDate];
}

View File

@ -37,6 +37,7 @@ class _TabHomePageState extends State<TabHomePage>
final _reusableWidget = ReusableWidget(); final _reusableWidget = ReusableWidget();
late StreamSubscription subVisitPhotoCountEvent; late StreamSubscription subVisitPhotoCountEvent;
late StreamSubscription subRefreshCalendarEvent;
// keep the state to do not refresh when switch navbar // keep the state to do not refresh when switch navbar
@override @override
@ -66,7 +67,7 @@ class _TabHomePageState extends State<TabHomePage>
loadData().then((_) { loadData().then((_) {
setState(() { setState(() {
// Listen particular event // Listen refresh photo count event
subVisitPhotoCountEvent = subVisitPhotoCountEvent =
eventBus.on<VisitPhotoCountEvent>().listen((e) { eventBus.on<VisitPhotoCountEvent>().listen((e) {
SharedPrefs().last_id_visite = e.id_visite; SharedPrefs().last_id_visite = e.id_visite;
@ -88,11 +89,19 @@ class _TabHomePageState extends State<TabHomePage>
}); });
}); });
}); });
// Listen refresh calendar event
subRefreshCalendarEvent = eventBus.on<RefreshCalendarEvent>().listen((e) {
setState(() {
loadData();
});
});
}); });
} }
@override @override
void dispose() { void dispose() {
subRefreshCalendarEvent.cancel();
subVisitPhotoCountEvent.cancel(); subVisitPhotoCountEvent.cancel();
super.dispose(); super.dispose();
} }

View File

@ -3,9 +3,11 @@ import 'package:flutter/material.dart';
import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:mobdr/main.dart';
import 'package:mobdr/config/constant.dart'; import 'package:mobdr/config/constant.dart';
import 'package:mobdr/config/global_style.dart'; import 'package:mobdr/config/global_style.dart';
import 'package:mobdr/service/shared_prefs.dart'; import 'package:mobdr/service/shared_prefs.dart';
import 'package:mobdr/events.dart';
import 'package:mobdr/model/visit_model.dart'; import 'package:mobdr/model/visit_model.dart';
import 'package:mobdr/ui/reusable/cache_image_network.dart'; import 'package:mobdr/ui/reusable/cache_image_network.dart';
import 'package:mobdr/ui/sync/upload_photos.dart'; import 'package:mobdr/ui/sync/upload_photos.dart';
@ -82,6 +84,9 @@ class _SynchronizationPageState extends State<SynchronizationPage> {
SharedPrefs().lastCalendarRefresh = SharedPrefs().lastCalendarRefresh =
DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()); DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now());
eventBus.fire(
RefreshCalendarEvent(SharedPrefs().lastCalendarRefresh));
setState(() { setState(() {
loadData(); loadData();
}); });