From 0c79855b33673ef6ba34223efc930e89389eecfa Mon Sep 17 00:00:00 2001 From: doodlezucc <electerminator@gmail.com> Date: Tue, 21 Nov 2023 10:51:36 +0100 Subject: [PATCH] deprecate teacher view --- lib/timetable/lesson_chip.dart | 17 ++++++++++++++++- lib/timetable/lesson_chip_collection.dart | 17 ++++++++++++----- lib/timetable/lesson_dialog.dart | 2 -- lib/views/teacher_view.dart | 1 + 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/lib/timetable/lesson_chip.dart b/lib/timetable/lesson_chip.dart index ed772ef..ab0bb97 100644 --- a/lib/timetable/lesson_chip.dart +++ b/lib/timetable/lesson_chip.dart @@ -4,14 +4,29 @@ import '../untis/element.dart'; class LessonChip extends StatelessWidget { final UntisElement data; - final void Function() onPressed; + final void Function()? onPressed; const LessonChip(this.data, {super.key, required this.onPressed}); + static Color getTextColorOfState( + BuildContext context, { + required bool pressable, + }) { + final theme = Theme.of(context); + return pressable ? theme.primaryColor : theme.iconTheme.color!; + } + + static MaterialStateColor getTextColor(BuildContext context) => + MaterialStateColor.resolveWith((states) => getTextColorOfState( + context, + pressable: !states.contains(MaterialState.disabled), + )); + @override Widget build(BuildContext context) { return TextButton( onPressed: onPressed, + style: ButtonStyle(foregroundColor: getTextColor(context)), child: Text(data.name, overflow: TextOverflow.ellipsis), ); } diff --git a/lib/timetable/lesson_chip_collection.dart b/lib/timetable/lesson_chip_collection.dart index 47aafb5..ea55157 100644 --- a/lib/timetable/lesson_chip_collection.dart +++ b/lib/timetable/lesson_chip_collection.dart @@ -6,20 +6,27 @@ import 'lesson_chip.dart'; class LessonChipCollection extends StatelessWidget { final IconData icon; final Iterable<UntisElement> elements; - final void Function(UntisElement element) onChipTap; + final void Function(UntisElement element)? onChipTap; - const LessonChipCollection(this.icon, this.elements, - {super.key, required this.onChipTap}); + const LessonChipCollection( + this.icon, + this.elements, { + super.key, + this.onChipTap, + }); @override Widget build(BuildContext context) { return Row( children: [ - Icon(icon, color: Theme.of(context).primaryColor), + Icon(icon, + color: LessonChip.getTextColorOfState(context, + pressable: onChipTap != null)), Expanded( child: Wrap( children: elements - .map((e) => LessonChip(e, onPressed: () => onChipTap(e))) + .map((e) => LessonChip(e, + onPressed: onChipTap == null ? null : () => onChipTap!(e))) .toList(), ), ) diff --git a/lib/timetable/lesson_dialog.dart b/lib/timetable/lesson_dialog.dart index 203f580..f29c5dc 100644 --- a/lib/timetable/lesson_dialog.dart +++ b/lib/timetable/lesson_dialog.dart @@ -6,7 +6,6 @@ import '../untis/lesson.dart'; import '../util/set_extension.dart'; import '../views/lecture_view.dart'; import '../views/room_view.dart'; -import '../views/teacher_view.dart'; import '../views/view.dart'; import 'lesson_chip_collection.dart'; import 'weekday_header.dart'; @@ -102,7 +101,6 @@ class _LessonDialogState extends State<LessonDialog> { LessonChipCollection( BrandingIcons.teacher, lesson.teachers, - onChipTap: (e) => changeView(TeacherView(teacherId: e.id)), ), ], ); diff --git a/lib/views/teacher_view.dart b/lib/views/teacher_view.dart index 0e75cf8..10cfaef 100644 --- a/lib/views/teacher_view.dart +++ b/lib/views/teacher_view.dart @@ -2,6 +2,7 @@ import '../untis/element_type.dart'; import 'single_element_view.dart'; +@Deprecated('Only logged in users can see teacher timetables') class TeacherView extends SingleElementView { TeacherView({required int teacherId}) : super(elementId: teacherId); -- GitLab