Skip to content

Commit ebda784

Browse files
committed
fix: use local value for date comparisons
1 parent a67371b commit ebda784

File tree

3 files changed

+24
-14
lines changed

3 files changed

+24
-14
lines changed

Diff for: lib/models/pomodoro.dart

+19-10
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,15 @@ class Pomodoro {
3030
this.loopsBeforeLongBreak = 4}) {
3131
DateTime now = DateTime.now();
3232
this.startingAtTime = DateTime.parse(
33-
'${DateFormat('yyyy-MM-dd').format(now)}T$startingAtTime');
33+
'${DateFormat('yyyy-MM-dd').format(now)}T$startingAtTime')
34+
.toLocal();
3435
this.endingAtTime =
35-
DateTime.parse('${DateFormat('yyyy-MM-dd').format(now)}T$endingAtTime');
36+
DateTime.parse('${DateFormat('yyyy-MM-dd').format(now)}T$endingAtTime')
37+
.toLocal();
38+
39+
if (this.endingAtTime.isBefore(this.startingAtTime)) {
40+
this.endingAtTime = this.endingAtTime.add(const Duration(days: 1));
41+
}
3642

3743
initFocuses();
3844
}
@@ -42,12 +48,15 @@ class Pomodoro {
4248
breaks = [];
4349
int loop = 0;
4450
while (endingAtTime.isAfter(focuses[loop])) {
45-
focuses.add(focuses[loop].add(Duration(
46-
minutes: focusInMinutes +
47-
((loop + 1) % loopsBeforeLongBreak == 0
48-
? longBreakInMinutes
49-
: breakInMinutes))));
50-
breaks.add(focuses[loop].add(Duration(minutes: focusInMinutes)));
51+
focuses.add(focuses[loop]
52+
.add(Duration(
53+
minutes: focusInMinutes +
54+
((loop + 1) % loopsBeforeLongBreak == 0
55+
? longBreakInMinutes
56+
: breakInMinutes)))
57+
.toLocal());
58+
breaks
59+
.add(focuses[loop].add(Duration(minutes: focusInMinutes)).toLocal());
5160
loop++;
5261
}
5362
breaks.add(endingAtTime);
@@ -88,10 +97,10 @@ class Pomodoro {
8897
DateTime now = DateTime.now();
8998
DateTime nextFocusStart = getNextFocusStart();
9099
DateTime nextBreakStart = getNextBreakStart();
91-
int currentLoop = getNextFocusLoop() - 1;
100+
int currentLoop = getNextFocusLoop();
92101
int to = 0;
93102

94-
if (now.isAfter(nextFocusStart) && now.isBefore(nextBreakStart)) {
103+
if (now.isAfter(startingAtTime) && now.isBefore(endingAtTime)) {
95104
to = nextFocusStart.isBefore(nextBreakStart)
96105
? nextFocusStart.difference(now).inSeconds
97106
: nextBreakStart.difference(now).inSeconds;

Diff for: lib/pomodoro.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ class _TimerState extends State<Timer> {
5757

5858
@override
5959
Widget build(BuildContext context) {
60-
WidgetsBinding.instance?.addPostFrameCallback((_) => _setCountDown());
60+
WidgetsBinding.instance
61+
?.addPostFrameCallback((_) => {if (_duration == 0) _setCountDown()});
6162

6263
return Container(
6364
decoration: BoxDecoration(color: _backgroundColor),

Diff for: macos/Runner.xcodeproj/project.pbxproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@
425425
"$(inherited)",
426426
"@executable_path/../Frameworks",
427427
);
428-
MARKETING_VERSION = 1.0.1;
428+
MARKETING_VERSION = 1.0.3;
429429
PRODUCT_BUNDLE_IDENTIFIER = com.mikaoelitiana.syncedPomodoro;
430430
PROVISIONING_PROFILE_SPECIFIER = "";
431431
SWIFT_VERSION = 5.0;
@@ -553,7 +553,7 @@
553553
"$(inherited)",
554554
"@executable_path/../Frameworks",
555555
);
556-
MARKETING_VERSION = 1.0.1;
556+
MARKETING_VERSION = 1.0.3;
557557
PRODUCT_BUNDLE_IDENTIFIER = com.mikaoelitiana.syncedPomodoro;
558558
PROVISIONING_PROFILE_SPECIFIER = "";
559559
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -575,7 +575,7 @@
575575
"$(inherited)",
576576
"@executable_path/../Frameworks",
577577
);
578-
MARKETING_VERSION = 1.0.1;
578+
MARKETING_VERSION = 1.0.3;
579579
PRODUCT_BUNDLE_IDENTIFIER = com.mikaoelitiana.syncedPomodoro;
580580
PROVISIONING_PROFILE_SPECIFIER = "";
581581
SWIFT_VERSION = 5.0;

0 commit comments

Comments
 (0)