[READ-ONLY] Mirror of https://github.com/probablykasper/notifier. Android app for scheduling notifications
android app flutter notifications
0

Configure Feed

Select the types of activity you want to include in your feed.

Fix date edits

Kasper (Jun 3, 2022, 4:48 AM +0200) 286d6bbc dee3b9d2

+67 -11
+5 -1
lib/edit_dialog.dart
··· 216 216 context, widget.item.getLatestDate()); 217 217 if (newDate != null) { 218 218 setState(() { 219 - widget.item.originalDate = newDate; 219 + if (widget.editMode) { 220 + widget.item.lastScheduledDate = newDate; 221 + } else { 222 + widget.item.originalDate = newDate; 223 + } 220 224 }); 221 225 } 222 226 },
+62 -10
test/notification_item_test.dart
··· 1 - import 'package:test/test.dart' show test, expect; 1 + import 'package:test/test.dart' show expect, group, test; 2 2 import 'package:notifier/notification_item.dart' show NotificationItem, Repeat; 3 3 4 4 main() { 5 - test('Weekly schedule next day', () { 6 - var item = NotificationItem.defaultWith( 7 - originalDate: DateTime(2018, 1, 1), 8 - lastScheduledDate: DateTime(2018, 1, 1), 9 - repeat: Repeat.weekly, 10 - repeatEvery: 1, 11 - weekdays: [true, true, true, true, true, true, true], 12 - ); 13 - expect(item.testGetDirectlyNextDate(), DateTime(2018, 1, 2)); 5 + group('Weekly schedule', () { 6 + test('Normal', () { 7 + var item = NotificationItem.defaultWith( 8 + originalDate: DateTime(2018, 1, 1), 9 + lastScheduledDate: DateTime(2018, 1, 1), 10 + repeat: Repeat.weekly, 11 + repeatEvery: 1, 12 + weekdays: [true, false, false, false, false, false, false], 13 + ); 14 + expect(item.testGetDirectlyNextDate(), DateTime(2018, 1, 8)); 15 + }); 16 + test('No weekdays checked', () { 17 + var item = NotificationItem.defaultWith( 18 + originalDate: DateTime(2018, 1, 1), 19 + lastScheduledDate: DateTime(2018, 1, 1), 20 + repeat: Repeat.weekly, 21 + repeatEvery: 1, 22 + weekdays: [false, false, false, false, false, false, false], 23 + ); 24 + expect(item.testGetDirectlyNextDate(), DateTime(2018, 1, 8)); 25 + }); 26 + test('Next day', () { 27 + var item = NotificationItem.defaultWith( 28 + originalDate: DateTime(2018, 1, 1), 29 + lastScheduledDate: DateTime(2018, 1, 1), 30 + repeat: Repeat.weekly, 31 + repeatEvery: 1, 32 + weekdays: [true, true, true, true, true, true, true], 33 + ); 34 + expect(item.testGetDirectlyNextDate(), DateTime(2018, 1, 2)); 35 + }); 36 + test('Later in same week', () { 37 + var item = NotificationItem.defaultWith( 38 + originalDate: DateTime(2018, 1, 1), 39 + lastScheduledDate: DateTime(2018, 1, 1), 40 + repeat: Repeat.weekly, 41 + repeatEvery: 1, 42 + weekdays: [true, false, false, false, false, false, true], 43 + ); 44 + expect(item.testGetDirectlyNextDate(), DateTime(2018, 1, 7)); 45 + }); 46 + test('Bi-weekly', () { 47 + var item = NotificationItem.defaultWith( 48 + originalDate: DateTime(2018, 1, 1), 49 + lastScheduledDate: DateTime(2018, 1, 1), 50 + repeat: Repeat.weekly, 51 + repeatEvery: 2, 52 + weekdays: [true, false, false, false, false, false, false], 53 + ); 54 + expect(item.testGetDirectlyNextDate(), DateTime(2018, 1, 1 + 7 * 2)); 55 + }); 56 + test('Bi-weekly from friday to thursday', () { 57 + var item = NotificationItem.defaultWith( 58 + originalDate: DateTime(2018, 1, 5), 59 + lastScheduledDate: DateTime(2018, 1, 5), 60 + repeat: Repeat.weekly, 61 + repeatEvery: 2, 62 + weekdays: [false, false, false, true, true, false, false], 63 + ); 64 + expect(item.testGetDirectlyNextDate(), DateTime(2018, 1, 5 + 7 + 6)); 65 + }); 14 66 }); 15 67 }