diff --git a/lib/storage/timetable/timetableSettings.dart b/lib/storage/timetable/timetableSettings.dart index beb7a6e..69d0729 100644 --- a/lib/storage/timetable/timetableSettings.dart +++ b/lib/storage/timetable/timetableSettings.dart @@ -4,9 +4,7 @@ part 'timetableSettings.g.dart'; @JsonSerializable() class TimetableSettings { - double zoom; - - TimetableSettings({required this.zoom}); + TimetableSettings(); factory TimetableSettings.fromJson(Map json) => _$TimetableSettingsFromJson(json); Map toJson() => _$TimetableSettingsToJson(this); diff --git a/lib/storage/timetable/timetableSettings.g.dart b/lib/storage/timetable/timetableSettings.g.dart index 598c466..03f2db8 100644 --- a/lib/storage/timetable/timetableSettings.g.dart +++ b/lib/storage/timetable/timetableSettings.g.dart @@ -7,11 +7,7 @@ part of 'timetableSettings.dart'; // ************************************************************************** TimetableSettings _$TimetableSettingsFromJson(Map json) => - TimetableSettings( - zoom: (json['zoom'] as num).toDouble(), - ); + TimetableSettings(); Map _$TimetableSettingsToJson(TimetableSettings instance) => - { - 'zoom': instance.zoom, - }; + {}; diff --git a/lib/view/pages/timetable/timetable.dart b/lib/view/pages/timetable/timetable.dart index e3b9c1f..53cc8c7 100644 --- a/lib/view/pages/timetable/timetable.dart +++ b/lib/view/pages/timetable/timetable.dart @@ -34,16 +34,11 @@ enum CalendarActions { addEvent, viewEvents } class _TimetableState extends State { CalendarController controller = CalendarController(); late Timer updateTimings; - - double elementScale = 40; - double baseElementScale = 40; - late final SettingsProvider settings; @override void initState() { settings = Provider.of(context, listen: false); - elementScale = baseElementScale = settings.val().timetableSettings.zoom; WidgetsBinding.instance.addPostFrameCallback((timeStamp) { Provider.of(context, listen: false).run(); @@ -132,62 +127,50 @@ class _TimetableState extends State { GetHolidaysResponse holidays = value.getHolidaysResponse; return RefreshIndicator( - child: GestureDetector( - onScaleStart: (details) => baseElementScale = elementScale, - onScaleUpdate: (details) { - setState(() { - elementScale = (baseElementScale * details.scale).clamp(40, 80); + child: SfCalendar( + view: CalendarView.workWeek, + dataSource: _buildTableEvents(value), + + maxDate: DateTime.now().add(const Duration(days: 7)).nextWeekday(DateTime.saturday), + minDate: DateTime.now().subtract(const Duration (days: 14)).nextWeekday(DateTime.sunday), + + controller: controller, + + onViewChanged: (ViewChangedDetails details) { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + Provider.of(context, listen: false).updateWeek(details.visibleDates.first, details.visibleDates.last); }); }, - onScaleEnd: (details) { - settings.val(write: true).timetableSettings.zoom = elementScale; + + onTap: (calendarTapDetails) { + if(calendarTapDetails.appointments == null) return; + Appointment tapped = calendarTapDetails.appointments!.first; + AppointmentDetails.show(context, value, tapped); }, - child: SfCalendar( - view: CalendarView.workWeek, - dataSource: _buildTableEvents(value), - - maxDate: DateTime.now().add(const Duration(days: 7)).nextWeekday(DateTime.saturday), - minDate: DateTime.now().subtract(const Duration (days: 14)).nextWeekday(DateTime.sunday), - - controller: controller, - - onViewChanged: (ViewChangedDetails details) { - WidgetsBinding.instance.addPostFrameCallback((timeStamp) { - Provider.of(context, listen: false).updateWeek(details.visibleDates.first, details.visibleDates.last); - }); - }, - - onTap: (calendarTapDetails) { - if(calendarTapDetails.appointments == null) return; - Appointment tapped = calendarTapDetails.appointments!.first; - AppointmentDetails.show(context, value, tapped); - }, - - firstDayOfWeek: DateTime.monday, - specialRegions: _buildSpecialTimeRegions(holidays), - timeSlotViewSettings: TimeSlotViewSettings( - startHour: 07.5, - endHour: 16.5, - timeInterval: const Duration(minutes: 30), - timeFormat: "HH:mm", - dayFormat: "EE", - timeIntervalHeight: elementScale, - ), - - timeRegionBuilder: (BuildContext context, TimeRegionDetails timeRegionDetails) => TimeRegionComponent(details: timeRegionDetails), - appointmentBuilder: (BuildContext context, CalendarAppointmentDetails details) => AppointmentComponent( - details: details, - crossedOut: _isCrossedOut(details) - ), - - headerHeight: 0, - selectionDecoration: const BoxDecoration(), - - allowAppointmentResize: false, - allowDragAndDrop: false, - allowViewNavigation: false, + firstDayOfWeek: DateTime.monday, + specialRegions: _buildSpecialTimeRegions(holidays), + timeSlotViewSettings: const TimeSlotViewSettings( + startHour: 07.5, + endHour: 16.5, + timeInterval: Duration(minutes: 30), + timeFormat: "HH:mm", + dayFormat: "EE", + timeIntervalHeight: 40, ), + + timeRegionBuilder: (BuildContext context, TimeRegionDetails timeRegionDetails) => TimeRegionComponent(details: timeRegionDetails), + appointmentBuilder: (BuildContext context, CalendarAppointmentDetails details) => AppointmentComponent( + details: details, + crossedOut: _isCrossedOut(details) + ), + + headerHeight: 0, + selectionDecoration: const BoxDecoration(), + + allowAppointmentResize: false, + allowDragAndDrop: false, + allowViewNavigation: false, ), onRefresh: () async { Provider.of(context, listen: false).run(renew: true); diff --git a/lib/view/settings/defaultSettings.dart b/lib/view/settings/defaultSettings.dart index 6e9cdf6..1b99f8d 100644 --- a/lib/view/settings/defaultSettings.dart +++ b/lib/view/settings/defaultSettings.dart @@ -22,9 +22,7 @@ class DefaultSettings { askedForPreferredGradeSystem: false, inputs: [] ), - timetableSettings: TimetableSettings( - zoom: 40, - ), + timetableSettings: TimetableSettings(), talkSettings: TalkSettings( sortFavoritesToTop: true, sortUnreadToTop: false,