diff --git a/filcnaplo/lib/ui/filter/sort.dart b/filcnaplo/lib/ui/filter/sort.dart index 1961c27..b0582a1 100644 --- a/filcnaplo/lib/ui/filter/sort.dart +++ b/filcnaplo/lib/ui/filter/sort.dart @@ -7,6 +7,7 @@ import 'package:filcnaplo_mobile_ui/common/panel/panel.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/absence/absence_viewable.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/absence_group/absence_group_tile.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/cretification/certification_card.dart'; +import 'package:filcnaplo_mobile_ui/common/widgets/grade/new_grades.dart'; import 'package:flutter/material.dart'; import 'package:animated_list_plus/animated_list_plus.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/lesson/changed_lesson_tile.dart'; @@ -150,9 +151,11 @@ List sortDateWidgets( index, len: elements.length, isAfterSeparated: index > 0 && - (elements[index - 1].widget is CertificationCard), + (elements[index - 1].widget is CertificationCard || + elements[index - 1].widget is NewGradesSurprise), isBeforeSeparated: (index < elements.length - 1) && - (elements[index + 1].widget is CertificationCard), + (elements[index + 1].widget is CertificationCard || + elements[index + 1].widget is NewGradesSurprise), ), items: elements, ), diff --git a/filcnaplo/lib/ui/filter/widgets.dart b/filcnaplo/lib/ui/filter/widgets.dart index 281c2d1..a2f2ae2 100644 --- a/filcnaplo/lib/ui/filter/widgets.dart +++ b/filcnaplo/lib/ui/filter/widgets.dart @@ -26,6 +26,7 @@ import 'package:filcnaplo_kreta_api/providers/message_provider.dart'; import 'package:filcnaplo_kreta_api/providers/note_provider.dart'; import 'package:filcnaplo_kreta_api/providers/timetable_provider.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/cretification/certification_card.dart'; +import 'package:filcnaplo_mobile_ui/common/widgets/grade/new_grades.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/note/note_viewable.dart'; import 'package:refilc_plus/providers/premium_provider.dart'; import 'package:refilc_plus/ui/mobile/premium/premium_inline.dart'; @@ -213,7 +214,7 @@ Widget filterItemBuilder( child: item, ); - bool separated = item is CertificationCard; + bool separated = item is CertificationCard || item is NewGradesSurprise; return item is Panel // Re-add & animate shadow diff --git a/filcnaplo_mobile_ui/lib/common/widgets/grade/new_grades.dart b/filcnaplo_mobile_ui/lib/common/widgets/grade/new_grades.dart index 8e9acc5..c5ea389 100755 --- a/filcnaplo_mobile_ui/lib/common/widgets/grade/new_grades.dart +++ b/filcnaplo_mobile_ui/lib/common/widgets/grade/new_grades.dart @@ -22,7 +22,7 @@ class NewGradesSurprise extends StatelessWidget { return Material( type: MaterialType.transparency, child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 4.0), + padding: const EdgeInsets.only(left: 4.0, right: 4.0, top: 1.0), child: ListTile( shape: RoundedRectangleBorder( side: BorderSide( diff --git a/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.i18n.dart b/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.i18n.dart index b786906..8c44a61 100755 --- a/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.i18n.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.i18n.dart @@ -92,6 +92,10 @@ extension SettingsLocalization on String { "paint_id": "Paint ID...", "set_as_current": "Set as current", "share_subj_theme": "Share Theme", + "no_name": "Untitled Paint", + "current_paint": "Current Paint", + "rename_subjects": "Rename Subjects", + "rename_teachers": "Rename Teachers", }, "hu_hu": { "personal_details": "Személyes információk", @@ -182,6 +186,10 @@ extension SettingsLocalization on String { "paint_id": "Téma azonosító...", "set_as_current": "Beállítás jelenleginek", "share_subj_theme": "Téma Megosztás", + "no_name": "Névtelen téma", + "current_paint": "Jelenlegi téma", + "rename_subjects": "Tantárgyak átnevezése", + "rename_teachers": "Tanárok átnevezése", }, "de_de": { "personal_details": "Persönliche Angaben", @@ -272,6 +280,10 @@ extension SettingsLocalization on String { "paint_id": "Themen-ID...", "set_as_current": "Als aktuell einstellen", "share_subj_theme": "Thema Teilen", + "no_name": "Anonymes Thema", + "current_paint": "Aktuelles Thema", + "rename_subjects": "Fächer umbenennen", + "rename_teachers": "Lehrer umbenennen", }, }; diff --git a/filcnaplo_mobile_ui/lib/screens/settings/submenu/extras_screen.dart b/filcnaplo_mobile_ui/lib/screens/settings/submenu/extras_screen.dart index be9f179..639f3de 100644 --- a/filcnaplo_mobile_ui/lib/screens/settings/submenu/extras_screen.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/submenu/extras_screen.dart @@ -1,9 +1,14 @@ // import 'package:filcnaplo/models/settings.dart'; +import 'package:filcnaplo/api/providers/user_provider.dart'; +import 'package:filcnaplo/models/settings.dart'; import 'package:filcnaplo/theme/colors/colors.dart'; import 'package:filcnaplo_mobile_ui/common/panel/panel_button.dart'; +import 'package:filcnaplo_mobile_ui/common/splitted_panel/splitted_panel.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_feather_icons/flutter_feather_icons.dart'; +import 'package:provider/provider.dart'; +import 'package:refilc_plus/ui/mobile/settings/welcome_message.dart'; // import 'package:provider/provider.dart'; import 'submenu_screen.i18n.dart'; @@ -38,12 +43,21 @@ class MenuExtrasSettings extends StatelessWidget { } } -class ExtrasSettingsScreen extends StatelessWidget { +class ExtrasSettingsScreen extends StatefulWidget { const ExtrasSettingsScreen({super.key}); + @override + ExtrasSettingsScreenState createState() => ExtrasSettingsScreenState(); +} + +class ExtrasSettingsScreenState extends State { + late SettingsProvider settingsProvider; + late UserProvider user; + @override Widget build(BuildContext context) { - // SettingsProvider settings = Provider.of(context); + SettingsProvider settingsProvider = Provider.of(context); + UserProvider user = Provider.of(context); return Scaffold( appBar: AppBar( @@ -58,7 +72,58 @@ class ExtrasSettingsScreen extends StatelessWidget { child: Padding( padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 24.0), child: Column( - children: [], + children: [ + SplittedPanel( + padding: const EdgeInsets.only(top: 8.0), + cardPadding: const EdgeInsets.all(4.0), + isSeparated: true, + children: [ + PanelButton( + padding: const EdgeInsets.only(left: 14.0, right: 6.0), + onPressed: () async { + settingsProvider.update( + gradeOpeningFun: !settingsProvider.gradeOpeningFun); + + setState(() {}); + }, + title: Text( + "surprise_grades".i18n, + style: TextStyle( + color: AppColors.of(context).text.withOpacity( + settingsProvider.gradeOpeningFun ? .95 : .25), + ), + ), + leading: Icon( + FeatherIcons.gift, + size: 22.0, + color: AppColors.of(context).text.withOpacity( + settingsProvider.gradeOpeningFun ? .95 : .25), + ), + trailing: Switch( + onChanged: (v) async { + settingsProvider.update(gradeOpeningFun: v); + + setState(() {}); + }, + value: settingsProvider.gradeOpeningFun, + activeColor: Theme.of(context).colorScheme.secondary, + ), + borderRadius: const BorderRadius.vertical( + top: Radius.circular(12.0), + bottom: Radius.circular(12.0), + ), + ), + ], + ), + SplittedPanel( + padding: const EdgeInsets.only(top: 9.0), + cardPadding: const EdgeInsets.all(4.0), + isSeparated: true, + children: [ + WelcomeMessagePanelButton(settingsProvider, user), + ], + ), + ], ), ), ), diff --git a/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart b/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart index 9ca868c..05d43a1 100644 --- a/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart @@ -264,10 +264,9 @@ class PaintListScreenState extends State crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - settingsProvider.currentThemeDisplayName != - 'displayName' + settingsProvider.currentThemeDisplayName != '' ? settingsProvider.currentThemeDisplayName - : 'Névtelen téma', + : 'no_name'.i18n, style: TextStyle( color: AppColors.of(context).text.withOpacity(.95), diff --git a/filcnaplo_mobile_ui/lib/screens/settings/submenu/submenu_screen.i18n.dart b/filcnaplo_mobile_ui/lib/screens/settings/submenu/submenu_screen.i18n.dart index e93f458..a7badbc 100644 --- a/filcnaplo_mobile_ui/lib/screens/settings/submenu/submenu_screen.i18n.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/submenu/submenu_screen.i18n.dart @@ -7,16 +7,19 @@ extension SettingsLocalization on String { "general": "General", "personalization": "Personalization", "extras": "Extras", + "surprise_grades": "Surprise Grades", }, "hu_hu": { "general": "Általános", "personalization": "Személyre szabás", "extras": "Extrák", + "surprise_grades": "Meglepetés jegyek", }, "de_de": { "general": "Allgemeine", "personalization": "Personalisierung", "extras": "Extras", + "surprise_grades": "Überraschende Noten", }, }; diff --git a/filcnaplo_mobile_ui/lib/screens/settings/theme_screen.dart b/filcnaplo_mobile_ui/lib/screens/settings/theme_screen.dart index 23e1e9f..98e2337 100644 --- a/filcnaplo_mobile_ui/lib/screens/settings/theme_screen.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/theme_screen.dart @@ -254,7 +254,7 @@ class _PremiumCustomAccentColorSettingState colors: isBackgroundDifferent ? [ Theme.of(context).colorScheme.background.withOpacity(1 - - ((currentTheme == ThemeMode.dark ? 0.65 : 0.45) * + ((currentTheme == ThemeMode.dark ? 0.65 : 0.25) * backgroundAnimation.value)), backgroundGradientBottomColor, ] @@ -396,8 +396,12 @@ class _PremiumCustomAccentColorSettingState child: Column( children: [ Padding( - padding: const EdgeInsets.symmetric( - horizontal: 32.0, vertical: 6.0), + padding: const EdgeInsets.only( + left: 32.0, + right: 32.0, + top: 16.0, + bottom: 6.0, + ), child: FilterBar( items: const [ Tab(text: "All"), @@ -632,6 +636,9 @@ class _PremiumCustomAccentColorSettingState }, ), censored: true, + padding: const EdgeInsets.only( + right: 6.0, + ), ), ), ),