From 0974587cad667b5c217d16636b8e5106416d941e Mon Sep 17 00:00:00 2001 From: AlexVincent525 Date: Tue, 11 Feb 2020 14:16:55 +0800 Subject: [PATCH] :sparkles: Link user flag judgement with pages and providers. --- lib/main.dart | 29 +++++++++++++++++------------ lib/model/user_info.dart | 6 +++--- lib/pages/home/apps_page.dart | 33 +++++++++++++++++++-------------- 3 files changed, 39 insertions(+), 29 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 40d1fe28..9733b02c 100755 --- a/lib/main.dart +++ b/lib/main.dart @@ -56,6 +56,7 @@ class OpenJMUAppState extends State with WidgetsBindingObserver { ); int initAction; + Brightness get _platformBrightness => Screens.mediaQuery.platformBrightness ?? Brightness.light; @override @@ -65,16 +66,28 @@ class OpenJMUAppState extends State with WidgetsBindingObserver { tryRecoverLoginInfo(); Instances.eventBus + ..on().listen((event) { + if (!currentUser.isTeacher) { + if (!currentUser.isPostgraduate) { + Provider.of(currentContext, listen: false).initCourses(); + Provider.of(currentContext, listen: false).initScore(); + } + } + Provider.of(currentContext, listen: false).initMessages(); + Provider.of(currentContext, listen: false).initRecords(); + Provider.of(currentContext, listen: false).initApps(); + }) ..on().listen((event) { - DataUtils.logout(); navigatorState.pushNamedAndRemoveUntil( Routes.OPENJMU_LOGIN, (_) => false, arguments: {'initAction': initAction}, ); if (!currentUser.isTeacher) { - Provider.of(currentContext, listen: false).unloadCourses(); - Provider.of(currentContext, listen: false).unloadScore(); + if (!currentUser.isPostgraduate) { + Provider.of(currentContext, listen: false).unloadCourses(); + Provider.of(currentContext, listen: false).unloadScore(); + } } Provider.of(currentContext, listen: false).unloadMessages(); Provider.of(currentContext, listen: false).unloadRecords(); @@ -83,15 +96,7 @@ class OpenJMUAppState extends State with WidgetsBindingObserver { Provider.of(currentContext, listen: false).resetTheme(); Provider.of(currentContext, listen: false).reset(); }); - }) - ..on().listen((event) { - if (!currentUser.isTeacher) { - Provider.of(currentContext, listen: false).initCourses(); - Provider.of(currentContext, listen: false).initScore(); - } - Provider.of(currentContext, listen: false).initMessages(); - Provider.of(currentContext, listen: false).initRecords(); - Provider.of(currentContext, listen: false).initApps(); + DataUtils.logout(); }) ..on().listen((event) { initAction = Constants.quickActionsList.keys diff --git a/lib/model/user_info.dart b/lib/model/user_info.dart index 7ec4e53e..b4b824e6 100644 --- a/lib/model/user_info.dart +++ b/lib/model/user_info.dart @@ -78,7 +78,7 @@ class UserInfo { } else { final int code = int.tryParse(workId.substring(4, 6)); if (code == null) return false; - return code >= 10 && code <= 19; + return (code >= 10 && code <= 19); } } @@ -89,7 +89,7 @@ class UserInfo { } else { final int code = int.tryParse(workId.substring(4, 6)); if (code == null) return false; - return code >= 30 && code <= 39; + return (code >= 30 && code <= 39); } } @@ -100,7 +100,7 @@ class UserInfo { } else { final int code = int.tryParse(workId.substring(4, 6)); if (code == null) return false; - return code >= 41 && code <= 45; + return (code >= 41 && code <= 45); } } diff --git a/lib/pages/home/apps_page.dart b/lib/pages/home/apps_page.dart index dc9fec38..c647a1bd 100755 --- a/lib/pages/home/apps_page.dart +++ b/lib/pages/home/apps_page.dart @@ -17,7 +17,11 @@ class AppsPage extends StatefulWidget { class AppsPageState extends State with TickerProviderStateMixin, AutomaticKeepAliveClientMixin { - static List get tabs => ['课程表', if (!(currentUser?.isTeacher ?? false)) '成绩', '应用']; + static List get tabs => [ + if (!(currentUser?.isPostgraduate ?? false)) '课程表', + if (!((currentUser?.isTeacher ?? false) || (currentUser?.isPostgraduate ?? false))) '成绩', + '应用', + ]; final refreshIndicatorKey = GlobalKey(); final _scrollController = ScrollController(); @@ -190,19 +194,20 @@ class AppsPageState extends State cacheExtent: 3, controller: _tabController, children: [ - currentUser.isTeacher != null - ? currentUser?.isTeacher ?? false - ? InAppBrowserPage( - url: '${API.courseScheduleTeacher}' - '?sid=${currentUser.sid}' - '&night=${dark ? 1 : 0}', - title: '课程表', - withAppBar: false, - withAction: false, - keepAlive: true, - ) - : CourseSchedulePage(key: Instances.courseSchedulePageStateKey) - : SizedBox.shrink(), + if (tabs.contains('课程表')) + currentUser.isTeacher != null + ? currentUser?.isTeacher ?? false + ? InAppBrowserPage( + url: '${API.courseScheduleTeacher}' + '?sid=${currentUser.sid}' + '&night=${dark ? 1 : 0}', + title: '课程表', + withAppBar: false, + withAction: false, + keepAlive: true, + ) + : CourseSchedulePage(key: Instances.courseSchedulePageStateKey) + : SizedBox.shrink(), if (tabs.contains('成绩')) ScorePage(), AppCenterPage( refreshIndicatorKey: refreshIndicatorKey,