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