Add feedback service, reminder diagnostics and smooth week transitions

This commit is contained in:
Codex
2026-10-14 15:53:21 +08:00
parent c5e736b39b
commit 1f06e3741e
40 changed files with 3982 additions and 25 deletions
+8
View File
@@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import '../domain/schedule_engine.dart';
import '../features/feedback/feedback_http_sender.dart';
import '../features/feedback/feedback_submission.dart';
import '../features/timetable/course_details.dart';
import 'app_controller.dart';
@@ -20,11 +22,13 @@ class HepanApp extends StatelessWidget {
this.schoolBuilder,
this.school,
this.notificationSelection,
this.feedbackSender,
});
final AppController controller;
final Widget Function()? schoolBuilder;
final SchoolSession? school;
final ValueNotifier<String?>? notificationSelection;
final FeedbackSender? feedbackSender;
@override
Widget build(BuildContext context) => MaterialApp(
debugShowCheckedModeBanner: false,
@@ -38,6 +42,7 @@ class HepanApp extends StatelessWidget {
schoolBuilder: schoolBuilder,
school: school,
notificationSelection: notificationSelection,
feedbackSender: feedbackSender ?? configuredFeedbackSender(),
),
);
}
@@ -48,11 +53,13 @@ class _Shell extends StatefulWidget {
this.schoolBuilder,
this.school,
this.notificationSelection,
required this.feedbackSender,
});
final AppController controller;
final Widget Function()? schoolBuilder;
final SchoolSession? school;
final ValueNotifier<String?>? notificationSelection;
final FeedbackSender feedbackSender;
@override
State<_Shell> createState() => _ShellState();
}
@@ -267,6 +274,7 @@ class _ShellState extends State<_Shell> with WidgetsBindingObserver {
),
ProfilePage(
controller: widget.controller,
feedbackSender: widget.feedbackSender,
onLogin: _school,
onUpdateTerm: () => _school(chooseTerm: true),
authStatus: widget.school?.statusLabel ?? '未登录',