From 0b0168ac91c9b7f7896cb89436aa1dcf90605cf3 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sat, 5 Nov 2022 15:58:05 +0100 Subject: fix shift delete bug --- lib/services/authentication_service.dart | 10 ++++++++++ lib/services/local_shift_provider_service.dart | 21 ++++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 lib/services/authentication_service.dart (limited to 'lib/services') diff --git a/lib/services/authentication_service.dart b/lib/services/authentication_service.dart new file mode 100644 index 0000000..a1fd370 --- /dev/null +++ b/lib/services/authentication_service.dart @@ -0,0 +1,10 @@ +class AuthenticationService { + bool isAuthenticated = false; + String apiKey = ''; + + Future authenticate(String username, String password) async { + isAuthenticated = true; + apiKey = 'test'; + return true; + } +} diff --git a/lib/services/local_shift_provider_service.dart b/lib/services/local_shift_provider_service.dart index fe4d466..d49f6ec 100644 --- a/lib/services/local_shift_provider_service.dart +++ b/lib/services/local_shift_provider_service.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'dart:io'; +import 'package:flutter/cupertino.dart'; import 'package:intl/intl.dart'; import 'package:training_planner/config/defaults.dart'; import 'package:training_planner/config/old_data.dart'; @@ -84,11 +85,13 @@ class LocalShiftProviderService extends IProgramProviderService { Future writeShiftsToFile(List shifts) async { try { - for (var shift in shifts) { + if (shifts.isNotEmpty) { final file = await _localFile( - DateUtilities.DateUtils.firstDayOfWeek(shift.start).toString()); + DateUtilities.DateUtils.firstDayOfWeek(shifts.first.start) + .toString()); LogService.log( - DateUtilities.DateUtils.firstDayOfWeek(shift.start).toString()); + DateUtilities.DateUtils.firstDayOfWeek(shifts.first.start) + .toString()); String content = jsonEncode(shifts); LogService.log('writing content to ' + file.path + ' -- ' + content); await file.writeAsString(content); @@ -184,14 +187,22 @@ class LocalShiftProviderService extends IProgramProviderService { @override Future deleteShift(Shift shift) async { - List savedShifts = await readShiftsFromFile( - DateUtilities.DateUtils.firstDayOfWeek(shift.start)); + DateTime firstDayOfWeek = + DateUtilities.DateUtils.firstDayOfWeek(shift.start); + + List savedShifts = await readShiftsFromFile(firstDayOfWeek); for (var item in savedShifts) { if (DateUtilities.DateUtils.isSameDay(shift.start, item.start)) { savedShifts.remove(item); break; } } + + if (savedShifts.isEmpty) { + final file = await _localFile(firstDayOfWeek.toString()); + await file.delete(); + } + await writeShiftsToFile(savedShifts); } } -- cgit v1.2.3-70-g09d2