feat: deliver RSchedule service login exams and elastic glass navigation

This commit is contained in:
Codex
2026-10-13 17:06:50 +08:00
parent 9193fd8e43
commit 8f20a341c4
35 changed files with 1742 additions and 453 deletions
@@ -17,11 +17,12 @@ class ProfilePage extends StatelessWidget {
required this.onLogin,
this.authStatus = '未登录',
this.onLogout,
this.logoutLabel = '退出学校登录',
});
final AppController controller;
final VoidCallback onLogin;
final VoidCallback? onLogout;
final String authStatus;
final String authStatus, logoutLabel;
Future<void> _import(BuildContext context) async {
try {
final file = await FilePicker.pickFile(
@@ -67,7 +68,7 @@ class ProfilePage extends StatelessWidget {
),
children: [
const Text(
'Riverside Schedule',
'RSchedule',
style: TextStyle(fontSize: 22, fontWeight: FontWeight.w700),
),
const SizedBox(height: 16),
@@ -114,7 +115,7 @@ class ProfilePage extends StatelessWidget {
Center(
child: TextButton(
onPressed: onLogout,
child: const Text('退出学校登录'),
child: Text(logoutLabel),
),
),
],
@@ -210,7 +211,7 @@ class ProfilePage extends StatelessWidget {
child: Column(
children: [
const Text(
'Riverside Schedule',
'RSchedule',
style: TextStyle(fontSize: 13, fontWeight: FontWeight.w600),
),
const SizedBox(height: 6),