Merge branch 'dev' of github.com:refilc/naplo into dev

This commit is contained in:
Kima 2024-05-01 18:26:13 +02:00
commit ca177ad69f
17 changed files with 317 additions and 332 deletions

View File

@ -83,8 +83,7 @@ class AppTheme {
accentColor == AccentColor.ogfilc) || accentColor == AccentColor.ogfilc) ||
!settings.newColors !settings.newColors
? accent ? accent
: ColorsUtils().darken(accent, : ColorsUtils().darken(accent, amount: 0.5);
amount: 0.4); // white mode: same tertiary as secondary
return ThemeData( return ThemeData(
brightness: Brightness.light, brightness: Brightness.light,
@ -187,15 +186,14 @@ class AppTheme {
accentColor == AccentColor.ogfilc) || accentColor == AccentColor.ogfilc) ||
!settings.newColors !settings.newColors
? accent ? accent
: ColorsUtils().lighten(accent, amount: 0.3); : ColorsUtils().lighten(accent, amount: 0.1);
// Color newScaffoldBg = ColorsUtils().lighten(accent, amount: 0.4); // Color newScaffoldBg = ColorsUtils().lighten(accent, amount: 0.4);
Color newTertiary = (accentColor == AccentColor.adaptive || Color newTertiary = (accentColor == AccentColor.adaptive ||
accentColor == AccentColor.custom || accentColor == AccentColor.custom ||
accentColor == AccentColor.ogfilc) || accentColor == AccentColor.ogfilc) ||
!settings.newColors !settings.newColors
? accent ? accent
: ColorsUtils().darken(accent, : ColorsUtils().lighten(accent, amount: 0.4);
amount: 0.1); // dark mode: tertiary is way darker than secondary
return ThemeData( return ThemeData(
brightness: Brightness.dark, brightness: Brightness.dark,

View File

@ -81,6 +81,7 @@ dependencies:
get_it: ^7.6.7 get_it: ^7.6.7
xml: ^6.5.0 xml: ^6.5.0
carousel_slider: ^4.2.1 carousel_slider: ^4.2.1
flutter_portal: ^1.1.4
dev_dependencies: dev_dependencies:
flutter_lints: ^3.0.1 flutter_lints: ^3.0.1

View File

@ -61,7 +61,7 @@ class _FilterBarState extends State<FilterBar> {
indicatorSize: TabBarIndicatorSize.tab, indicatorSize: TabBarIndicatorSize.tab,
indicatorPadding: const EdgeInsets.symmetric(vertical: 8.0), indicatorPadding: const EdgeInsets.symmetric(vertical: 8.0),
indicator: BoxDecoration( indicator: BoxDecoration(
color: Theme.of(context).colorScheme.tertiary.withOpacity(.2), color: Theme.of(context).colorScheme.secondary.withOpacity(.2),
borderRadius: BorderRadius.circular(45.0), borderRadius: BorderRadius.circular(45.0),
), ),
overlayColor: MaterialStateProperty.all(const Color(0x00000000)), overlayColor: MaterialStateProperty.all(const Color(0x00000000)),

View File

@ -58,7 +58,7 @@ class ProfileButton extends StatelessWidget {
return ProfileImage( return ProfileImage(
backgroundColor: !pMode backgroundColor: !pMode
? child.backgroundColor ? child.backgroundColor
: Theme.of(context).colorScheme.tertiary, : Theme.of(context).colorScheme.secondary,
heroTag: child.heroTag, heroTag: child.heroTag,
key: child.key, key: child.key,
name: !pMode ? child.name : "János", name: !pMode ? child.name : "János",

View File

@ -165,7 +165,7 @@ class AbsencesPageState extends State<AbsencesPage>
name: firstName, name: firstName,
backgroundColor: Theme.of(context) backgroundColor: Theme.of(context)
.colorScheme .colorScheme
.tertiary, //ColorUtils.stringToColor(user.displayName ?? "?"), .secondary, //ColorUtils.stringToColor(user.displayName ?? "?"),
badge: updateProvider.available, badge: updateProvider.available,
role: user.role, role: user.role,
profilePictureString: user.picture, profilePictureString: user.picture,

View File

@ -147,8 +147,8 @@ class _GradeSubjectViewState extends State<GradeSubjectView>
), ),
)); ));
if (!gradeCalcMode) { tiles.addAll(
tiles.addAll([ [
const SizedBox( const SizedBox(
height: 5.0, height: 5.0,
), ),
@ -162,8 +162,8 @@ class _GradeSubjectViewState extends State<GradeSubjectView>
controller: _tabController, controller: _tabController,
disableFading: true, disableFading: true,
), ),
]); ],
} );
if (showGraph(subjectGrades) && _tabController.index == 0) { if (showGraph(subjectGrades) && _tabController.index == 0) {
tiles.add(gradeGraph); tiles.add(gradeGraph);
@ -380,31 +380,13 @@ class _GradeSubjectViewState extends State<GradeSubjectView>
.where((e) => e.type == GradeType.midYear) .where((e) => e.type == GradeType.midYear)
.isNotEmpty, .isNotEmpty,
child: ExpandableFab( child: ExpandableFab(
openButtonBuilder: FloatingActionButtonBuilder(
size: 20.0,
builder: (context, onPressed, progress) =>
FloatingActionButton.small(
onPressed: onPressed,
backgroundColor: Theme.of(context).colorScheme.tertiary,
child: const Icon(Icons.more_horiz_outlined),
),
),
closeButtonBuilder: FloatingActionButtonBuilder(
size: 20.0,
builder: (context, onPressed, progress) =>
FloatingActionButton.small(
onPressed: onPressed,
backgroundColor: Theme.of(context).colorScheme.tertiary,
child: const Icon(Icons.close),
),
),
type: ExpandableFabType.up, type: ExpandableFabType.up,
distance: 50, distance: 50,
// childrenOffset: const Offset(-8.8, 0.0), childrenOffset: const Offset(-3.8, 0.0),
children: [ children: [
FloatingActionButton.small( FloatingActionButton.small(
heroTag: "btn_ghost_grades", heroTag: "btn_ghost_grades",
backgroundColor: Theme.of(context).colorScheme.tertiary, backgroundColor: Theme.of(context).colorScheme.secondary,
onPressed: () { onPressed: () {
gradeCalc(context); gradeCalc(context);
}, },
@ -412,7 +394,7 @@ class _GradeSubjectViewState extends State<GradeSubjectView>
), ),
FloatingActionButton.small( FloatingActionButton.small(
heroTag: "btn_goal_planner", heroTag: "btn_goal_planner",
backgroundColor: Theme.of(context).colorScheme.tertiary, backgroundColor: Theme.of(context).colorScheme.secondary,
onPressed: () { onPressed: () {
// if (!Provider.of<PlusProvider>(context, listen: false) // if (!Provider.of<PlusProvider>(context, listen: false)
// .hasScope(PremiumScopes.goalPlanner)) { // .hasScope(PremiumScopes.goalPlanner)) {
@ -551,10 +533,6 @@ class _GradeSubjectViewState extends State<GradeSubjectView>
elevation: 12.0, elevation: 12.0,
); );
// set tab
int tabIndex = _tabController.index;
_tabController.animateTo(0);
// Hide the fab and grades // Hide the fab and grades
setState(() { setState(() {
gradeCalcMode = true; gradeCalcMode = true;
@ -563,9 +541,6 @@ class _GradeSubjectViewState extends State<GradeSubjectView>
_sheetController!.closed.then((value) { _sheetController!.closed.then((value) {
// Show fab and grades // Show fab and grades
if (mounted) { if (mounted) {
// set tab
_tabController.animateTo(tabIndex);
setState(() { setState(() {
gradeCalcMode = false; gradeCalcMode = false;
}); });

View File

@ -546,7 +546,7 @@ class GradesPageState extends State<GradesPage> {
name: firstName, name: firstName,
backgroundColor: Theme.of(context) backgroundColor: Theme.of(context)
.colorScheme .colorScheme
.tertiary, //ColorUtils.stringToColor(user.displayName ?? "?"), .secondary, //ColorUtils.stringToColor(user.displayName ?? "?"),
badge: updateProvider.available, badge: updateProvider.available,
role: user.role, role: user.role,
profilePictureString: user.picture, profilePictureString: user.picture,

View File

@ -307,7 +307,7 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
name: firstName, name: firstName,
backgroundColor: Theme.of(context) backgroundColor: Theme.of(context)
.colorScheme .colorScheme
.tertiary, //!settings.presentationMode .secondary, //!settings.presentationMode
//? ColorUtils.stringToColor(user.displayName ?? "?") //? ColorUtils.stringToColor(user.displayName ?? "?")
//: Theme.of(context).colorScheme.secondary, //: Theme.of(context).colorScheme.secondary,
badge: updateProvider.available, badge: updateProvider.available,

View File

@ -105,7 +105,7 @@ class MessagesPageState extends State<MessagesPage>
name: firstName, name: firstName,
backgroundColor: Theme.of(context) backgroundColor: Theme.of(context)
.colorScheme .colorScheme
.tertiary, //ColorUtils.stringToColor(user.displayName ?? "?"), .secondary, //ColorUtils.stringToColor(user.displayName ?? "?"),
badge: updateProvider.available, badge: updateProvider.available,
role: user.role, role: user.role,
profilePictureString: user.picture, profilePictureString: user.picture,

View File

@ -251,7 +251,7 @@ class NotesPageState extends State<NotesPage> with TickerProviderStateMixin {
name: firstName, name: firstName,
backgroundColor: Theme.of(context) backgroundColor: Theme.of(context)
.colorScheme .colorScheme
.tertiary, //ColorUtils.stringToColor(user.displayName ?? "?"), .secondary, //ColorUtils.stringToColor(user.displayName ?? "?"),
badge: updateProvider.available, badge: updateProvider.available,
role: user.role, role: user.role,
profilePictureString: user.picture, profilePictureString: user.picture,

View File

@ -283,7 +283,7 @@ class TimetablePageState extends State<TimetablePage>
name: firstName, name: firstName,
backgroundColor: Theme.of(context) backgroundColor: Theme.of(context)
.colorScheme .colorScheme
.tertiary, //ColorUtils.stringToColor(user.displayName ?? "?"), .secondary, //ColorUtils.stringToColor(user.displayName ?? "?"),
badge: updateProvider.available, badge: updateProvider.available,
role: user.role, role: user.role,
profilePictureString: user.picture, profilePictureString: user.picture,

View File

@ -15,6 +15,7 @@ import 'package:flutter/services.dart';
import 'login_screen.i18n.dart'; import 'login_screen.i18n.dart';
import 'package:carousel_slider/carousel_slider.dart'; import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:flutter_portal/flutter_portal.dart';
class LoginScreen extends StatefulWidget { class LoginScreen extends StatefulWidget {
const LoginScreen({super.key, this.back = false}); const LoginScreen({super.key, this.back = false});
@ -78,298 +79,307 @@ class LoginScreenState extends State<LoginScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( precacheImage(const AssetImage('assets/images/showcase1.png'), context);
body: Container( precacheImage(const AssetImage('assets/images/showcase2.png'), context);
decoration: const BoxDecoration(color: Color(0xFFDAE4F7)), precacheImage(const AssetImage('assets/images/showcase3.png'), context);
child: SingleChildScrollView( precacheImage(const AssetImage('assets/images/showcase4.png'), context);
physics: const ClampingScrollPhysics(),
controller: _scrollController, return Portal(
child: Container( child: Scaffold(
decoration: const BoxDecoration(color: Color(0xFFDAE4F7)), body: Container(
width: MediaQuery.of(context).size.width, decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
height: MediaQuery.of(context).size.height, child: SingleChildScrollView(
child: SafeArea( physics: const ClampingScrollPhysics(),
child: Column( controller: _scrollController,
mainAxisAlignment: MainAxisAlignment.start, child: Container(
crossAxisAlignment: CrossAxisAlignment.start, decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
children: [ width: MediaQuery.of(context).size.width,
// app icon height: MediaQuery.of(context).size.height,
Padding( child: SafeArea(
padding: const EdgeInsets.only(left: 24, top: 20), child: Column(
child: Row( mainAxisAlignment: MainAxisAlignment.start,
children: [ crossAxisAlignment: CrossAxisAlignment.start,
Image.asset( children: [
'assets/icons/ic_rounded.png', // app icon
width: 30.0, Padding(
), padding: const EdgeInsets.only(left: 24, top: 20),
const SizedBox(width: 8), child: Row(
Text( children: [
'reFilc', Image.asset(
style: TextStyle( 'assets/icons/ic_rounded.png',
color: AppColors.of(context).loginPrimary, width: 30.0,
fontSize: 18.0, ),
fontWeight: FontWeight.bold, const SizedBox(width: 8),
fontFamily: 'Montserrat'), const Text(
), 'reFilc',
Material( style: TextStyle(
type: MaterialType.transparency, color: Color(0xFF050B15),
child: showBack fontSize: 18.0,
? BackButton( fontWeight: FontWeight.bold,
color: AppColors.of(context).loginPrimary) fontFamily: 'Montserrat'),
: const SizedBox(height: 48.0), ),
), Material(
], type: MaterialType.transparency,
)), child: showBack
Column( ? BackButton(
mainAxisAlignment: MainAxisAlignment.center, color: AppColors.of(context).loginPrimary)
crossAxisAlignment: CrossAxisAlignment.center, : const SizedBox(height: 48.0),
children: [ ),
const SizedBox(height: 21), ],
CarouselSlider( )),
options: CarouselOptions( Column(
height: MediaQuery.of(context).size.height, mainAxisAlignment: MainAxisAlignment.center,
viewportFraction: 1, crossAxisAlignment: CrossAxisAlignment.center,
autoPlay: true, children: [
autoPlayInterval: const Duration(seconds: 4), const SizedBox(height: 21),
pauseAutoPlayOnTouch: true), CarouselSlider(
items: [1, 2, 3, 4].map((i) { options: CarouselOptions(
return Builder( height: MediaQuery.of(context).size.height,
builder: (BuildContext context) { viewportFraction: 1,
return Column( autoPlay: true,
crossAxisAlignment: CrossAxisAlignment.start, autoPlayInterval: const Duration(seconds: 6),
mainAxisAlignment: MainAxisAlignment.start, pauseAutoPlayOnTouch: true),
children: [ items: [1, 2, 3, 4].map((i) {
Padding( return Builder(
padding: const EdgeInsets.only(left: 24), builder: (BuildContext context) {
child: Column( return Column(
crossAxisAlignment: crossAxisAlignment: CrossAxisAlignment.start,
CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
mainAxisAlignment: children: [
MainAxisAlignment.start, Padding(
children: [ padding:
Text( const EdgeInsets.only(left: 24),
"welcome_title_$i".i18n, child: Column(
style: TextStyle( crossAxisAlignment:
color: AppColors.of(context) CrossAxisAlignment.start,
.loginPrimary, mainAxisAlignment:
fontSize: 20, MainAxisAlignment.start,
fontFamily: 'Montserrat', children: [
fontWeight: FontWeight.w700, Text(
height: 1.3), "welcome_title_$i".i18n,
),
const SizedBox(height: 14.375), //meth
Padding(
padding: const EdgeInsets.only(
right: 20),
child: Text(
"welcome_text_$i".i18n,
style: const TextStyle( style: const TextStyle(
fontFamily: 'FigTree', color: Color(0xFF050B15),
fontWeight: FontWeight.w500, fontSize: 19,
fontSize: 18, fontFamily: 'Montserrat',
fontWeight: FontWeight.w700,
height: 1.3), height: 1.3),
), ),
), const SizedBox(
], height: 14.375), //meth
)), Padding(
const SizedBox(height: 15.625), padding: const EdgeInsets.only(
Padding( right: 20),
padding: const EdgeInsets.only( child: Text(
left: 16, right: 16), "welcome_text_$i".i18n,
child: Image.asset( style: const TextStyle(
'assets/images/showcase$i.png', fit: BoxFit.fitWidth)), color: Color(0xFF050B15),
], fontFamily: 'FigTree',
); fontWeight: FontWeight.w500,
}, fontSize: 17,
); height: 1.3),
}).toList(), ),
), ),
], ],
) )),
const SizedBox(height: 15.625),
Padding(
padding: const EdgeInsets.only(
left: 16, right: 16),
child: Image.asset(
'assets/images/showcase$i.png',
fit: BoxFit.fitWidth)),
],
);
},
);
}).toList(),
),
],
)
// // inputs
// Padding(
// padding: const EdgeInsets.only(
// left: 22.0,
// right: 22.0,
// top: 0.0,
// ),
// child: AutofillGroup(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// // username
// Padding(
// padding: const EdgeInsets.only(bottom: 6.0),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// Expanded(
// child: Text(
// "username".i18n,
// maxLines: 1,
// style: TextStyle(
// color: AppColors.of(context).loginPrimary,
// fontWeight: FontWeight.w500,
// fontSize: 12.0,
// ),
// ),
// ),
// Expanded(
// child: Text(
// "usernameHint".i18n,
// maxLines: 1,
// textAlign: TextAlign.right,
// style: TextStyle(
// color:
// AppColors.of(context).loginSecondary,
// fontWeight: FontWeight.w500,
// fontSize: 12.0,
// ),
// ),
// ),
// ],
// ),
// ),
// Padding(
// padding: const EdgeInsets.only(bottom: 12.0),
// child: LoginInput(
// style: LoginInputStyle.username,
// controller: usernameController,
// ),
// ),
// // inputs // // password
// Padding( // Padding(
// padding: const EdgeInsets.only( // padding: const EdgeInsets.only(bottom: 6.0),
// left: 22.0, // child: Row(
// right: 22.0, // mainAxisAlignment: MainAxisAlignment.spaceBetween,
// top: 0.0, // children: [
// ), // Expanded(
// child: AutofillGroup( // child: Text(
// child: Column( // "password".i18n,
// crossAxisAlignment: CrossAxisAlignment.start, // maxLines: 1,
// children: [ // style: TextStyle(
// // username // color: AppColors.of(context).loginPrimary,
// Padding( // fontWeight: FontWeight.w500,
// padding: const EdgeInsets.only(bottom: 6.0), // fontSize: 12.0,
// child: Row( // ),
// mainAxisAlignment: MainAxisAlignment.spaceBetween, // ),
// children: [ // ),
// Expanded( // Expanded(
// child: Text( // child: Text(
// "username".i18n, // "passwordHint".i18n,
// maxLines: 1, // maxLines: 1,
// style: TextStyle( // textAlign: TextAlign.right,
// color: AppColors.of(context).loginPrimary, // style: TextStyle(
// fontWeight: FontWeight.w500, // color:
// fontSize: 12.0, // AppColors.of(context).loginSecondary,
// ), // fontWeight: FontWeight.w500,
// ), // fontSize: 12.0,
// ), // ),
// Expanded( // ),
// child: Text( // ),
// "usernameHint".i18n, // ],
// maxLines: 1, // ),
// textAlign: TextAlign.right, // ),
// style: TextStyle( // Padding(
// color: // padding: const EdgeInsets.only(bottom: 12.0),
// AppColors.of(context).loginSecondary, // child: LoginInput(
// fontWeight: FontWeight.w500, // style: LoginInputStyle.password,
// fontSize: 12.0, // controller: passwordController,
// ), // ),
// ), // ),
// ),
// ],
// ),
// ),
// Padding(
// padding: const EdgeInsets.only(bottom: 12.0),
// child: LoginInput(
// style: LoginInputStyle.username,
// controller: usernameController,
// ),
// ),
// // password // // school
// Padding( // Padding(
// padding: const EdgeInsets.only(bottom: 6.0), // padding: const EdgeInsets.only(bottom: 6.0),
// child: Row( // child: Text(
// mainAxisAlignment: MainAxisAlignment.spaceBetween, // "school".i18n,
// children: [ // maxLines: 1,
// Expanded( // style: TextStyle(
// child: Text( // color: AppColors.of(context).loginPrimary,
// "password".i18n, // fontWeight: FontWeight.w500,
// maxLines: 1, // fontSize: 12.0,
// style: TextStyle( // ),
// color: AppColors.of(context).loginPrimary, // ),
// fontWeight: FontWeight.w500, // ),
// fontSize: 12.0, // SchoolInput(
// ), // scroll: _scrollController,
// ), // controller: schoolController,
// ), // ),
// Expanded( // ],
// child: Text( // ),
// "passwordHint".i18n, // ),
// maxLines: 1, // ),
// textAlign: TextAlign.right,
// style: TextStyle(
// color:
// AppColors.of(context).loginSecondary,
// fontWeight: FontWeight.w500,
// fontSize: 12.0,
// ),
// ),
// ),
// ],
// ),
// ),
// Padding(
// padding: const EdgeInsets.only(bottom: 12.0),
// child: LoginInput(
// style: LoginInputStyle.password,
// controller: passwordController,
// ),
// ),
// // school // // login button
// Padding( // Padding(
// padding: const EdgeInsets.only(bottom: 6.0), // padding: const EdgeInsets.only(
// child: Text( // top: 35.0,
// "school".i18n, // left: 22.0,
// maxLines: 1, // right: 22.0,
// style: TextStyle( // ),
// color: AppColors.of(context).loginPrimary, // child: Visibility(
// fontWeight: FontWeight.w500, // visible: _loginState != LoginState.inProgress,
// fontSize: 12.0, // replacement: const Padding(
// ), // padding: EdgeInsets.symmetric(vertical: 6.0),
// ), // child: CircularProgressIndicator(
// ), // valueColor:
// SchoolInput( // AlwaysStoppedAnimation<Color>(Colors.white),
// scroll: _scrollController, // ),
// controller: schoolController, // ),
// ), // child: LoginButton(
// ], // child: Text("login".i18n,
// ), // maxLines: 1,
// ), // style: const TextStyle(
// ), // fontWeight: FontWeight.bold,
// fontSize: 20.0,
// )),
// onPressed: () => _loginAPI(context: context),
// ),
// ),
// ),
// // login button // // error messages
// Padding( // if (_loginState == LoginState.missingFields ||
// padding: const EdgeInsets.only( // _loginState == LoginState.invalidGrant ||
// top: 35.0, // _loginState == LoginState.failed)
// left: 22.0, // Padding(
// right: 22.0, // padding: const EdgeInsets.only(
// ), // top: 8.0, left: 12.0, right: 12.0),
// child: Visibility( // child: Text(
// visible: _loginState != LoginState.inProgress, // [
// replacement: const Padding( // "missing_fields",
// padding: EdgeInsets.symmetric(vertical: 6.0), // "invalid_grant",
// child: CircularProgressIndicator( // "error"
// valueColor: // ][_loginState.index]
// AlwaysStoppedAnimation<Color>(Colors.white), // .i18n,
// ), // style: const TextStyle(
// ), // color: Colors.red,
// child: LoginButton( // fontWeight: FontWeight.w500,
// child: Text("login".i18n, // ),
// maxLines: 1, // textAlign: TextAlign.center,
// style: const TextStyle( // ),
// fontWeight: FontWeight.bold, // ),
// fontSize: 20.0, // const SizedBox(height: 22.0),
// )),
// onPressed: () => _loginAPI(context: context),
// ),
// ),
// ),
// // error messages // // privacy policy
// if (_loginState == LoginState.missingFields || // GestureDetector(
// _loginState == LoginState.invalidGrant || // onTap: () => PrivacyView.show(context),
// _loginState == LoginState.failed) // child: Text(
// Padding( // 'privacy'.i18n,
// padding: const EdgeInsets.only( // style: TextStyle(
// top: 8.0, left: 12.0, right: 12.0), // color: AppColors.of(context).loginSecondary,
// child: Text( // fontWeight: FontWeight.w500,
// [ // fontSize: 14.0,
// "missing_fields", // ),
// "invalid_grant", // ),
// "error" // ),
// ][_loginState.index]
// .i18n,
// style: const TextStyle(
// color: Colors.red,
// fontWeight: FontWeight.w500,
// ),
// textAlign: TextAlign.center,
// ),
// ),
// const SizedBox(height: 22.0),
// // privacy policy // const Spacer(
// GestureDetector( // flex: 1,
// onTap: () => PrivacyView.show(context), // ),
// child: Text( ],
// 'privacy'.i18n, ),
// style: TextStyle(
// color: AppColors.of(context).loginSecondary,
// fontWeight: FontWeight.w500,
// fontSize: 14.0,
// ),
// ),
// ),
// const Spacer(
// flex: 1,
// ),
],
), ),
), ),
), ),

View File

@ -60,7 +60,7 @@ extension Localization on String {
"welcome_title_3": "welcome_title_3":
"Kövesd a céljaidat, és legyen a matek egyesből matek ötös.", "Kövesd a céljaidat, és legyen a matek egyesből matek ötös.",
"welcome_text_3": "welcome_text_3":
"Állítsd be a célodat, és mi megmondjuk, hányas jegyet kell szerezned. Még konfetti is van a cél elérésekor.", "Állítsd be a célodat, és mi megmondjuk, hány jegyet kell szerezned. Még konfetti is van a cél elérésekor.",
"welcome_title_4": "Füzetelj annyit, amennyit csak szeretnél.", "welcome_title_4": "Füzetelj annyit, amennyit csak szeretnél.",
"welcome_text_4": "welcome_text_4":
"A beépített jegyzetfüzetbe órák szerint is rendezheted a jegyzeteidet, így mindent megtalálsz egy appban.", "A beépített jegyzetfüzetbe órák szerint is rendezheted a jegyzeteidet, így mindent megtalálsz egy appban.",

View File

@ -34,7 +34,7 @@ class NavbarItem extends StatelessWidget {
padding: const EdgeInsets.all(12.0), padding: const EdgeInsets.all(12.0),
decoration: BoxDecoration( decoration: BoxDecoration(
color: active color: active
? Theme.of(context).colorScheme.tertiary.withOpacity(.2) ? Theme.of(context).colorScheme.secondary.withOpacity(.2)
: null, : null,
borderRadius: BorderRadius.circular(14.0), borderRadius: BorderRadius.circular(14.0),
), ),

View File

@ -30,7 +30,7 @@ class AccountView extends StatelessWidget {
AccountTile( AccountTile(
profileImage: ProfileImage( profileImage: ProfileImage(
name: _firstName, name: _firstName,
backgroundColor: Theme.of(context).colorScheme.tertiary, backgroundColor: Theme.of(context).colorScheme.secondary,
role: user.role, role: user.role,
), ),
name: SelectableText( name: SelectableText(

View File

@ -136,7 +136,7 @@ class SettingsScreenState extends State<SettingsScreen>
profilePictureString: account.picture, profilePictureString: account.picture,
backgroundColor: Theme.of(context) backgroundColor: Theme.of(context)
.colorScheme .colorScheme
.tertiary, //!settings.presentationMode .secondary, //!settings.presentationMode
//? ColorUtils.stringToColor(account.name) //? ColorUtils.stringToColor(account.name)
//: Theme.of(context).colorScheme.secondary, //: Theme.of(context).colorScheme.secondary,
), ),

View File

@ -70,6 +70,7 @@ dependencies:
xml: ^6.5.0 xml: ^6.5.0
markdown: ^7.2.2 markdown: ^7.2.2
carousel_slider: ^4.2.1 carousel_slider: ^4.2.1
flutter_portal: ^1.1.4
dev_dependencies: dev_dependencies:
flutter_lints: ^3.0.1 flutter_lints: ^3.0.1