refactor: naming synchronisation

release/mobdr-v0.0.1
Frédérik Benoist 2023-05-15 06:19:58 +02:00
parent f0d575e2f3
commit b4b50f6192
4 changed files with 30 additions and 20 deletions

View File

@ -25,7 +25,7 @@ class VisitModel {
required this.type_visite,
required this.langage});
static Future<List<VisitModel>> getTodayVisit() async {
static Future<List<VisitModel>> getTodayVisits() async {
// Retrieve all today visits from the database
final visits = await objectbox.getTodayVisit();
@ -49,7 +49,7 @@ class VisitModel {
return visitModelList;
}
static Future<List<VisitModel>> getPreviousVisit() async {
static Future<List<VisitModel>> getPreviousVisits() async {
// Retrieve all previsous visits from the database
final visits = await objectbox.getPreviousVisit();
@ -73,7 +73,7 @@ class VisitModel {
return visitModelList;
}
static Future<List<VisitModel>> getAllVisit() async {
static Future<List<VisitModel>> getToSyncVisits() async {
// Retrieve all visits from the database
final visits = await objectbox.getAllVisit();
@ -91,6 +91,9 @@ class VisitModel {
image: visite.url_photo_principale,
type_visite: visite.type_visite,
langage: visite.langage))
.where((visit) =>
visit.photoCount >
0) // Filter out visits with photoCount equal to 0
.toList();
// Return the list of VisiteModel

View File

@ -5,7 +5,7 @@ import 'package:mobdr/main.dart';
import 'package:mobdr/ui/account/tab_account.dart';
import 'package:mobdr/ui/home/tab_home.dart';
import 'package:mobdr/ui/mp4/tab_mp4.dart';
import 'package:mobdr/ui/visit/tab_visit.dart';
import 'package:mobdr/ui/sync/tab_sync.dart';
import 'package:mobdr/config/constant.dart';
import 'package:mobdr/events.dart';
@ -28,7 +28,7 @@ class _HomePageState extends State<HomePage>
void initState() {
_contentPages = <Widget>[
TabHomePage(),
TabVisitListPage(),
TabSyncPage(),
TabMP4Page(),
TabAccountPage(),
];

View File

@ -410,8 +410,8 @@ class _TabHomePageState extends State<TabHomePage>
/// Initializes data when the page loads.
Future<void> loadData() async {
// visite model initialisation
todayVisitData = await VisitModel.getTodayVisit();
previousVisitData = await VisitModel.getPreviousVisit();
todayVisitData = await VisitModel.getTodayVisits();
previousVisitData = await VisitModel.getPreviousVisits();
// Search for the visit matching last_id_visit
int lastIdVisite = SharedPrefs().last_id_visite;
@ -426,6 +426,13 @@ class _TabHomePageState extends State<TabHomePage>
}
}
for (var visit in previousVisitData) {
if (visit.id_visite == lastIdVisite) {
lastVisitData = visit;
break;
}
}
if (lastVisitData == null) {
SharedPrefs().last_id_visite = 0;
}

View File

@ -12,12 +12,12 @@ import 'package:mobdr/ui/reusable/cache_image_network.dart';
import 'package:mobdr/ui/sync/upload_photos.dart';
import 'package:mobdr/ui/sync/check_connection.dart';
class TabVisitListPage extends StatefulWidget {
class TabSyncPage extends StatefulWidget {
@override
_TabVisitListPageState createState() => _TabVisitListPageState();
_TabSyncPageState createState() => _TabSyncPageState();
}
class _TabVisitListPageState extends State<TabVisitListPage>
class _TabSyncPageState extends State<TabSyncPage>
with AutomaticKeepAliveClientMixin {
// keep the state to do not refresh when switch navbar
@override
@ -26,7 +26,7 @@ class _TabVisitListPageState extends State<TabVisitListPage>
bool _isLoading = true;
String _errorMessage = '';
late List<VisitModel> modelData = [];
late List<VisitModel> tosyncVisitData = [];
late StreamSubscription subVisitPhotoCountEvent;
@ -40,9 +40,9 @@ class _TabVisitListPageState extends State<TabVisitListPage>
// Listen particular event
subVisitPhotoCountEvent = eventBus.on<VisitPhotoCountEvent>().listen((e) {
setState(() {
for (int i = 0; i < modelData.length; i++) {
if (modelData[i].id_visite == e.id_visite) {
modelData[i].photoCount = e.photoCount;
for (int i = 0; i < tosyncVisitData.length; i++) {
if (tosyncVisitData[i].id_visite == e.id_visite) {
tosyncVisitData[i].photoCount = e.photoCount;
break;
}
}
@ -69,7 +69,7 @@ class _TabVisitListPageState extends State<TabVisitListPage>
final double boxImageSize = (MediaQuery.of(context).size.width / 4);
if (_isLoading) {
return Center(child: CircularProgressIndicator());
} else if (modelData.isEmpty) {
} else if (tosyncVisitData.isEmpty) {
return Center(
child: Text('No visits to synchronise.'),
);
@ -91,7 +91,7 @@ class _TabVisitListPageState extends State<TabVisitListPage>
Flexible(
child: AnimatedList(
key: _listKey,
initialItemCount: modelData.length,
initialItemCount: tosyncVisitData.length,
physics: AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index, animation) {
return Dismissible(
@ -100,7 +100,7 @@ class _TabVisitListPageState extends State<TabVisitListPage>
onDismissed: (direction) {
// the photo must be removed
setState(() {
modelData.removeAt(index);
tosyncVisitData.removeAt(index);
_listKey = GlobalKey<AnimatedListState>();
});
},
@ -121,7 +121,7 @@ class _TabVisitListPageState extends State<TabVisitListPage>
),
),
child: _buildVisitelistCard(
modelData[index], boxImageSize, animation, index),
tosyncVisitData[index], boxImageSize, animation, index),
);
},
),
@ -375,8 +375,8 @@ class _TabVisitListPageState extends State<TabVisitListPage>
/// Initializes data when the page loads.
Future<void> loadData() async {
try {
// data initialisation with today visits
modelData = await VisitModel.getAllVisit();
// initialization of data with all visits to be synchronized
tosyncVisitData = await VisitModel.getToSyncVisits();
} catch (e) {
// set errorMessage for debug
_errorMessage = 'Error loading visits : $e';