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/local_shift_provider_service.dart | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'lib/services/local_shift_provider_service.dart') 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