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
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();
late StreamSubscription subVisitPhotoCountEvent;
late StreamSubscription subRefreshCalendarEvent;
// keep the state to do not refresh when switch navbar
@override
@ -66,7 +67,7 @@ class _TabHomePageState extends State<TabHomePage>
loadData().then((_) {
setState(() {
// Listen particular event
// Listen refresh photo count event
subVisitPhotoCountEvent =
eventBus.on<VisitPhotoCountEvent>().listen((e) {
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
void dispose() {
subRefreshCalendarEvent.cancel();
subVisitPhotoCountEvent.cancel();
super.dispose();
}

View File

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