refactor: 重构提醒通知系统
This commit is contained in:
@@ -378,24 +378,11 @@ class _CreateEventSheetState extends State<CreateEventSheet>
|
||||
_startDate = date;
|
||||
_startTime = time;
|
||||
if (_endDate != null && _endTime != null) {
|
||||
final endDateTime = DateTime(
|
||||
_endDate!.year,
|
||||
_endDate!.month,
|
||||
_endDate!.day,
|
||||
_endTime!.hour,
|
||||
_endTime!.minute,
|
||||
);
|
||||
final startDateTime = DateTime(
|
||||
date.year,
|
||||
date.month,
|
||||
date.day,
|
||||
time.hour,
|
||||
time.minute,
|
||||
);
|
||||
final endDateTime = _composeDateTime(_endDate!, _endTime!);
|
||||
final startDateTime = _composeDateTime(date, time);
|
||||
if (endDateTime.isBefore(startDateTime) ||
|
||||
endDateTime.isAtSameMomentAs(startDateTime)) {
|
||||
_endDate = date;
|
||||
_endTime = time.add(const Duration(hours: 1));
|
||||
_setEndDateTime(_defaultEndDateTime(startDateTime));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -408,44 +395,47 @@ class _CreateEventSheetState extends State<CreateEventSheet>
|
||||
_endTime ?? _startTime,
|
||||
(date, time) {
|
||||
setState(() {
|
||||
final startDateTime = DateTime(
|
||||
_startDate.year,
|
||||
_startDate.month,
|
||||
_startDate.day,
|
||||
_startTime.hour,
|
||||
_startTime.minute,
|
||||
);
|
||||
final endDateTime = DateTime(
|
||||
date.year,
|
||||
date.month,
|
||||
date.day,
|
||||
time.hour,
|
||||
time.minute,
|
||||
);
|
||||
final startDateTime = _composeDateTime(_startDate, _startTime);
|
||||
final endDateTime = _composeDateTime(date, time);
|
||||
if (endDateTime.isBefore(startDateTime) ||
|
||||
endDateTime.isAtSameMomentAs(startDateTime)) {
|
||||
_endDate = _startDate;
|
||||
_endTime = _startTime.add(const Duration(hours: 1));
|
||||
Toast.show(
|
||||
context,
|
||||
context.l10n.calendarCreateInvalidTimeRange,
|
||||
type: ToastType.error,
|
||||
);
|
||||
_setEndDateTime(_defaultEndDateTime(startDateTime));
|
||||
} else {
|
||||
_endDate = date;
|
||||
_endTime = time;
|
||||
_setEndDateTime(endDateTime);
|
||||
}
|
||||
});
|
||||
},
|
||||
isOptional: true,
|
||||
minTime: DateTime(
|
||||
_startDate.year,
|
||||
_startDate.month,
|
||||
_startDate.day,
|
||||
_startTime.hour,
|
||||
_startTime.minute,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
DateTime _composeDateTime(DateTime date, DateTime time) {
|
||||
return DateTime(date.year, date.month, date.day, time.hour, time.minute);
|
||||
}
|
||||
|
||||
DateTime _defaultEndDateTime(DateTime startDateTime) {
|
||||
return startDateTime.add(const Duration(hours: 1));
|
||||
}
|
||||
|
||||
void _setEndDateTime(DateTime value) {
|
||||
_endDate = DateTime(value.year, value.month, value.day);
|
||||
_endTime = DateTime(
|
||||
value.year,
|
||||
value.month,
|
||||
value.day,
|
||||
value.hour,
|
||||
value.minute,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildAdvancedTab() {
|
||||
return SingleChildScrollView(
|
||||
keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag,
|
||||
|
||||
Reference in New Issue
Block a user