started new navigation bar
This commit is contained in:
parent
91b293d211
commit
c1965e2453
@ -45,11 +45,10 @@ const settingsDB = DatabaseStruct("settings", {
|
|||||||
"show_breaks": int,
|
"show_breaks": int,
|
||||||
"font_family": String,
|
"font_family": String,
|
||||||
"plus_session_id": String,
|
"plus_session_id": String,
|
||||||
"cal_sync_room_location": String,
|
"cal_sync_room_location": String, "cal_sync_show_exams": int,
|
||||||
"cal_sync_show_exams": int,
|
"cal_sync_show_teacher": int, "cal_sync_renamed": int,
|
||||||
"cal_sync_show_teacher": int,
|
|
||||||
"cal_sync_renamed": int,
|
|
||||||
"calendar_id": String,
|
"calendar_id": String,
|
||||||
|
"nav_shadow": int,
|
||||||
});
|
});
|
||||||
// DON'T FORGET TO UPDATE DEFAULT VALUES IN `initDB` MIGRATION OR ELSE PARENTS WILL COMPLAIN ABOUT THEIR CHILDREN MISSING
|
// DON'T FORGET TO UPDATE DEFAULT VALUES IN `initDB` MIGRATION OR ELSE PARENTS WILL COMPLAIN ABOUT THEIR CHILDREN MISSING
|
||||||
// YOU'VE BEEN WARNED!!!
|
// YOU'VE BEEN WARNED!!!
|
||||||
|
@ -98,6 +98,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
bool _calSyncShowTeacher;
|
bool _calSyncShowTeacher;
|
||||||
bool _calSyncRenamed;
|
bool _calSyncRenamed;
|
||||||
String _calendarId;
|
String _calendarId;
|
||||||
|
bool _navShadow;
|
||||||
|
|
||||||
SettingsProvider({
|
SettingsProvider({
|
||||||
DatabaseProvider? database,
|
DatabaseProvider? database,
|
||||||
@ -161,6 +162,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
required bool calSyncShowTeacher,
|
required bool calSyncShowTeacher,
|
||||||
required bool calSyncRenamed,
|
required bool calSyncRenamed,
|
||||||
required String calendarId,
|
required String calendarId,
|
||||||
|
required bool navShadow,
|
||||||
}) : _database = database,
|
}) : _database = database,
|
||||||
_language = language,
|
_language = language,
|
||||||
_startPage = startPage,
|
_startPage = startPage,
|
||||||
@ -221,7 +223,8 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
_calSyncShowExams = calSyncShowExams,
|
_calSyncShowExams = calSyncShowExams,
|
||||||
_calSyncShowTeacher = calSyncShowTeacher,
|
_calSyncShowTeacher = calSyncShowTeacher,
|
||||||
_calSyncRenamed = calSyncRenamed,
|
_calSyncRenamed = calSyncRenamed,
|
||||||
_calendarId = calendarId;
|
_calendarId = calendarId,
|
||||||
|
_navShadow = navShadow;
|
||||||
|
|
||||||
factory SettingsProvider.fromMap(Map map,
|
factory SettingsProvider.fromMap(Map map,
|
||||||
{required DatabaseProvider database}) {
|
{required DatabaseProvider database}) {
|
||||||
@ -302,6 +305,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
calSyncShowTeacher: map['cal_sync_show_teacher'] == 1,
|
calSyncShowTeacher: map['cal_sync_show_teacher'] == 1,
|
||||||
calSyncRenamed: map['cal_sync_renamed'] == 1,
|
calSyncRenamed: map['cal_sync_renamed'] == 1,
|
||||||
calendarId: map['calendar_id'],
|
calendarId: map['calendar_id'],
|
||||||
|
navShadow: map['nav_shadow'] == 1,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -370,6 +374,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
"cal_sync_show_teacher": _calSyncShowTeacher ? 1 : 0,
|
"cal_sync_show_teacher": _calSyncShowTeacher ? 1 : 0,
|
||||||
"cal_sync_renamed": _calSyncRenamed ? 1 : 0,
|
"cal_sync_renamed": _calSyncRenamed ? 1 : 0,
|
||||||
"calendar_id": _calendarId,
|
"calendar_id": _calendarId,
|
||||||
|
"nav_shadow": _navShadow ? 1 : 0,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -442,6 +447,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
calSyncShowTeacher: true,
|
calSyncShowTeacher: true,
|
||||||
calSyncRenamed: false,
|
calSyncRenamed: false,
|
||||||
calendarId: '',
|
calendarId: '',
|
||||||
|
navShadow: true,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,6 +511,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
bool get calSyncShowTeacher => _calSyncShowTeacher;
|
bool get calSyncShowTeacher => _calSyncShowTeacher;
|
||||||
bool get calSyncRenamed => _calSyncRenamed;
|
bool get calSyncRenamed => _calSyncRenamed;
|
||||||
String get calendarId => _calendarId;
|
String get calendarId => _calendarId;
|
||||||
|
bool get navShadow => _navShadow;
|
||||||
|
|
||||||
Future<void> update({
|
Future<void> update({
|
||||||
bool store = true,
|
bool store = true,
|
||||||
@ -564,6 +571,7 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
bool? calSyncShowTeacher,
|
bool? calSyncShowTeacher,
|
||||||
bool? calSyncRenamed,
|
bool? calSyncRenamed,
|
||||||
String? calendarId,
|
String? calendarId,
|
||||||
|
bool? navShadow,
|
||||||
}) async {
|
}) async {
|
||||||
if (language != null && language != _language) _language = language;
|
if (language != null && language != _language) _language = language;
|
||||||
if (startPage != null && startPage != _startPage) _startPage = startPage;
|
if (startPage != null && startPage != _startPage) _startPage = startPage;
|
||||||
@ -731,6 +739,9 @@ class SettingsProvider extends ChangeNotifier {
|
|||||||
if (calendarId != null && calendarId != _calendarId) {
|
if (calendarId != null && calendarId != _calendarId) {
|
||||||
_calendarId = calendarId;
|
_calendarId = calendarId;
|
||||||
}
|
}
|
||||||
|
if (navShadow != null && navShadow != _navShadow) {
|
||||||
|
_navShadow = navShadow;
|
||||||
|
}
|
||||||
// store or not
|
// store or not
|
||||||
if (store) await _database?.store.storeSettings(this);
|
if (store) await _database?.store.storeSettings(this);
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
@ -96,6 +96,7 @@ flutter:
|
|||||||
- assets/images/subject_covers/
|
- assets/images/subject_covers/
|
||||||
- assets/launch_icons/
|
- assets/launch_icons/
|
||||||
- assets/images/ext_logo/
|
- assets/images/ext_logo/
|
||||||
|
- assets/svg/menu_icons/
|
||||||
|
|
||||||
fonts:
|
fonts:
|
||||||
- family: FilcIcons
|
- family: FilcIcons
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import 'package:flutter/widgets.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:refilc/api/providers/update_provider.dart';
|
import 'package:refilc/api/providers/update_provider.dart';
|
||||||
import 'package:refilc/helpers/quick_actions.dart';
|
import 'package:refilc/helpers/quick_actions.dart';
|
||||||
import 'package:refilc/models/settings.dart';
|
import 'package:refilc/models/settings.dart';
|
||||||
@ -234,6 +236,9 @@ class NavigationScreenState extends State<NavigationScreen>
|
|||||||
_navigatorState.currentState?.pushReplacementNamed(page);
|
_navigatorState.currentState?.pushReplacementNamed(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// SvgTheme navIcTheme =
|
||||||
|
// SvgTheme(currentColor: Theme.of(context).colorScheme.primary);
|
||||||
|
|
||||||
// ignore: deprecated_member_use
|
// ignore: deprecated_member_use
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: () async {
|
onWillPop: () async {
|
||||||
@ -255,6 +260,7 @@ class NavigationScreenState extends State<NavigationScreen>
|
|||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
|
// actual page
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Stack(
|
child: Stack(
|
||||||
alignment: Alignment.bottomCenter,
|
alignment: Alignment.bottomCenter,
|
||||||
@ -269,49 +275,121 @@ class NavigationScreenState extends State<NavigationScreen>
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
// Status bar
|
// navbar
|
||||||
Material(
|
Container(
|
||||||
color: Theme.of(context).colorScheme.background,
|
decoration: settings.navShadow
|
||||||
child: const StatusBar(),
|
? BoxDecoration(
|
||||||
),
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
color: Theme.of(context).scaffoldBackgroundColor,
|
||||||
|
offset: const Offset(0, -4),
|
||||||
|
blurRadius: 14,
|
||||||
|
spreadRadius: 18,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
gradient: LinearGradient(
|
||||||
|
begin: Alignment.topCenter,
|
||||||
|
end: Alignment.bottomCenter,
|
||||||
|
stops: const [0.0, 0.175],
|
||||||
|
colors: [
|
||||||
|
Theme.of(context).scaffoldBackgroundColor,
|
||||||
|
Theme.of(context).scaffoldBackgroundColor,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: null,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
// Status bar
|
||||||
|
Material(
|
||||||
|
color: Theme.of(context).colorScheme.background,
|
||||||
|
child: const StatusBar(),
|
||||||
|
),
|
||||||
|
|
||||||
// Bottom Navigaton Bar
|
// Bottom Navigaton Bar
|
||||||
Material(
|
Material(
|
||||||
color: Theme.of(context).scaffoldBackgroundColor,
|
color: Theme.of(context).scaffoldBackgroundColor,
|
||||||
child: MediaQuery.removePadding(
|
child: MediaQuery.removePadding(
|
||||||
context: context,
|
context: context,
|
||||||
removeTop: true,
|
removeTop: true,
|
||||||
child: Navbar(
|
child: Navbar(
|
||||||
selectedIndex: selected.index,
|
selectedIndex: selected.index,
|
||||||
onSelected: onPageSelected,
|
onSelected: onPageSelected,
|
||||||
items: [
|
items: [
|
||||||
NavItem(
|
NavItem(
|
||||||
title: "home".i18n,
|
title: "home".i18n,
|
||||||
icon: const Icon(FilcIcons.home),
|
icon: Stack(
|
||||||
activeIcon: const Icon(FilcIcons.homefill),
|
alignment: AlignmentDirectional.center,
|
||||||
|
children: [
|
||||||
|
SvgPicture.asset(
|
||||||
|
'assets/svg/menu_icons/today.svg',
|
||||||
|
color:
|
||||||
|
Theme.of(context).colorScheme.secondary,
|
||||||
|
height: 24,
|
||||||
|
),
|
||||||
|
Transform.translate(
|
||||||
|
offset: const Offset(0, 1.6),
|
||||||
|
child: Text(
|
||||||
|
DateTime.now().day.toString(),
|
||||||
|
style: TextStyle(
|
||||||
|
color: Theme.of(context)
|
||||||
|
.colorScheme
|
||||||
|
.secondary,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
activeIcon: Stack(
|
||||||
|
alignment: AlignmentDirectional.center,
|
||||||
|
children: [
|
||||||
|
SvgPicture.asset(
|
||||||
|
'assets/svg/menu_icons/today_selected.svg',
|
||||||
|
color:
|
||||||
|
Theme.of(context).colorScheme.secondary,
|
||||||
|
height: 24,
|
||||||
|
),
|
||||||
|
Transform.translate(
|
||||||
|
offset: const Offset(0, 1.8),
|
||||||
|
child: Text(
|
||||||
|
DateTime.now().day.toString(),
|
||||||
|
style: TextStyle(
|
||||||
|
color: Theme.of(context)
|
||||||
|
.colorScheme
|
||||||
|
.background,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
NavItem(
|
||||||
|
title: "grades".i18n,
|
||||||
|
icon: const Icon(FeatherIcons.bookmark),
|
||||||
|
activeIcon: const Icon(FilcIcons.gradesfill),
|
||||||
|
),
|
||||||
|
NavItem(
|
||||||
|
title: "timetable".i18n,
|
||||||
|
icon: const Icon(FeatherIcons.calendar),
|
||||||
|
activeIcon: const Icon(FilcIcons.timetablefill),
|
||||||
|
),
|
||||||
|
NavItem(
|
||||||
|
title: "messages".i18n,
|
||||||
|
icon: const Icon(FeatherIcons.messageSquare),
|
||||||
|
activeIcon: const Icon(FilcIcons.messagesfill),
|
||||||
|
),
|
||||||
|
NavItem(
|
||||||
|
title: "absences".i18n,
|
||||||
|
icon: const Icon(FeatherIcons.clock),
|
||||||
|
activeIcon: const Icon(FilcIcons.absencesfill),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
NavItem(
|
),
|
||||||
title: "grades".i18n,
|
],
|
||||||
icon: const Icon(FeatherIcons.bookmark),
|
|
||||||
activeIcon: const Icon(FilcIcons.gradesfill),
|
|
||||||
),
|
|
||||||
NavItem(
|
|
||||||
title: "timetable".i18n,
|
|
||||||
icon: const Icon(FeatherIcons.calendar),
|
|
||||||
activeIcon: const Icon(FilcIcons.timetablefill),
|
|
||||||
),
|
|
||||||
NavItem(
|
|
||||||
title: "messages".i18n,
|
|
||||||
icon: const Icon(FeatherIcons.messageSquare),
|
|
||||||
activeIcon: const Icon(FilcIcons.messagesfill),
|
|
||||||
),
|
|
||||||
NavItem(
|
|
||||||
title: "absences".i18n,
|
|
||||||
icon: const Icon(FeatherIcons.clock),
|
|
||||||
activeIcon: const Icon(FilcIcons.absencesfill),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user