feat: add elastic glass dock motion and Android tablet layouts

This commit is contained in:
david1465833828
2026-10-28 11:09:43 +08:00
parent fbcb7fb637
commit 9da5864d29
16 changed files with 1321 additions and 874 deletions
+46 -38
View File
@@ -11,6 +11,7 @@ import '../features/timetable/course_details.dart';
import 'app_controller.dart';
import 'app_theme.dart';
import '../widgets/glass_dock.dart';
import '../widgets/adaptive_page.dart';
import '../widgets/tab_deck.dart';
import '../features/exams/exams_page.dart';
import '../features/timetable/timetable_page.dart';
@@ -439,46 +440,53 @@ class _ShellState extends State<_Shell> with WidgetsBindingObserver {
child: TabDeck(
index: _tab,
children: [
TimetablePage(
controller: widget.controller,
onSync: _school,
AdaptivePage(
maxWidth: 1440,
child: TimetablePage(
controller: widget.controller,
onSync: _school,
),
),
ExamsPage(
controller: widget.controller,
onSync: () {
_school(exams: true);
},
onQueryOptions:
_knownSchool ==
SupportedSchool.uestcUndergraduate
? () => _school(exams: true, chooseTerm: true)
: null,
AdaptivePage(
child: ExamsPage(
controller: widget.controller,
onSync: () {
_school(exams: true);
},
onQueryOptions:
_knownSchool ==
SupportedSchool.uestcUndergraduate
? () => _school(exams: true, chooseTerm: true)
: null,
),
),
ProfilePage(
controller: widget.controller,
feedbackSender: widget.feedbackSender,
onCheckUpdates: widget.updateService == null
? null
: () => _checkUpdate(),
checkingUpdates: _checkingUpdate,
onLogin: () => _school(selectSchool: true),
schoolName: _knownSchool?.label,
onUpdateTerm: () => _school(chooseTerm: true),
authStatus:
_knownSchool ==
SupportedSchool.uestcUndergraduate
? widget.undergraduate?.statusLabel ?? '未登录'
: widget.school?.statusLabel ?? '未登录',
logoutLabel:
widget.school?.logoutFailed == true ||
widget.undergraduate?.logoutFailed == true
? '重试退出学校登录'
: '退出学校登录',
onLogout:
widget.school?.canLogout == true ||
widget.undergraduate?.canLogout == true
? _logout
: null,
AdaptivePage(
child: ProfilePage(
controller: widget.controller,
feedbackSender: widget.feedbackSender,
onCheckUpdates: widget.updateService == null
? null
: () => _checkUpdate(),
checkingUpdates: _checkingUpdate,
onLogin: () => _school(selectSchool: true),
schoolName: _knownSchool?.label,
onUpdateTerm: () => _school(chooseTerm: true),
authStatus:
_knownSchool ==
SupportedSchool.uestcUndergraduate
? widget.undergraduate?.statusLabel ?? '未登录'
: widget.school?.statusLabel ?? '未登录',
logoutLabel:
widget.school?.logoutFailed == true ||
widget.undergraduate?.logoutFailed == true
? '重试退出学校登录'
: '退出学校登录',
onLogout:
widget.school?.canLogout == true ||
widget.undergraduate?.canLogout == true
? _logout
: null,
),
),
],
),