From c40026e59485dea3f692fa6efb0ec675c24e769d Mon Sep 17 00:00:00 2001 From: Kima Date: Mon, 17 Jun 2024 17:58:18 +0200 Subject: [PATCH 01/27] removed no import warning from grade exporting --- refilc_plus | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/refilc_plus b/refilc_plus index c01a0249..3f9f65af 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit c01a0249b9266346d8e812fe026dc933500ceac7 +Subproject commit 3f9f65aff84e3f6ba96604f2901fe522287f112a From 9470c848bfedcc0b8119ae1a7f602c6d76650b58 Mon Sep 17 00:00:00 2001 From: Kima Date: Mon, 17 Jun 2024 22:19:43 +0200 Subject: [PATCH 02/27] added new feature badge and unseen new feature list to settings --- refilc/lib/database/init.dart | 1 + refilc/lib/models/settings.dart | 11 +++++ .../lib/common/{ => chips}/beta_chip.dart | 3 +- .../lib/common/chips/chips.i18n.dart | 24 ++++++++++ .../lib/common/chips/new_chip.dart | 45 +++++++++++++++++++ refilc_mobile_ui/lib/plus/plus_screen.dart | 2 + .../screens/settings/desktop_settings.dart | 2 +- 7 files changed, 86 insertions(+), 2 deletions(-) rename refilc_mobile_ui/lib/common/{ => chips}/beta_chip.dart (95%) create mode 100644 refilc_mobile_ui/lib/common/chips/chips.i18n.dart create mode 100644 refilc_mobile_ui/lib/common/chips/new_chip.dart diff --git a/refilc/lib/database/init.dart b/refilc/lib/database/init.dart index a8c820d9..84d44447 100644 --- a/refilc/lib/database/init.dart +++ b/refilc/lib/database/init.dart @@ -54,6 +54,7 @@ const settingsDB = DatabaseStruct("settings", { "new_colors": int, "uwu_mode": int, "new_popups": int, + "unseen_new_features": String, // quick settings "q_timetable_lesson_num": int, "q_timetable_sub_tiles": int, "q_subjects_sub_tiles": int, diff --git a/refilc/lib/models/settings.dart b/refilc/lib/models/settings.dart index 298e704a..990d978a 100644 --- a/refilc/lib/models/settings.dart +++ b/refilc/lib/models/settings.dart @@ -107,6 +107,7 @@ class SettingsProvider extends ChangeNotifier { bool _newColors; bool _uwuMode; bool _newPopups; + List _unseenNewFeatures; // quick settings bool _qTimetableLessonNum; bool _qTimetableSubTiles; @@ -180,6 +181,7 @@ class SettingsProvider extends ChangeNotifier { required bool newColors, required bool uwuMode, required bool newPopups, + required List unseenNewFeatures, required bool qTimetableLessonNum, required bool qTimetableSubTiles, required bool qSubjectsSubTiles, @@ -250,6 +252,7 @@ class SettingsProvider extends ChangeNotifier { _newColors = newColors, _uwuMode = uwuMode, _newPopups = newPopups, + _unseenNewFeatures = unseenNewFeatures, _qTimetableLessonNum = qTimetableLessonNum, _qTimetableSubTiles = qTimetableSubTiles, _qSubjectsSubTiles = qSubjectsSubTiles; @@ -339,6 +342,7 @@ class SettingsProvider extends ChangeNotifier { newColors: map['new_colors'] == 1, uwuMode: map['uwu_mode'] == 1, newPopups: map['new_popups'] == 1, + unseenNewFeatures: jsonDecode(map["unseen_new_features"]).cast(), qTimetableLessonNum: map['q_timetable_lesson_num'] == 1, qTimetableSubTiles: map['q_timetable_sub_tiles'] == 1, qSubjectsSubTiles: map['q_subjects_sub_tiles'] == 1, @@ -416,6 +420,7 @@ class SettingsProvider extends ChangeNotifier { "new_colors": _newColors ? 1 : 0, "uwu_mode": _uwuMode ? 1 : 0, "new_popups": _newPopups ? 1 : 0, + "unseen_new_features": jsonEncode(_unseenNewFeatures), "q_timetable_lesson_num": _qTimetableLessonNum ? 1 : 0, "q_timetable_sub_tiles": _qTimetableSubTiles ? 1 : 0, "q_subjects_sub_tiles": _qSubjectsSubTiles ? 1 : 0, @@ -497,6 +502,7 @@ class SettingsProvider extends ChangeNotifier { newColors: true, uwuMode: false, newPopups: true, + unseenNewFeatures: [], qTimetableLessonNum: true, qTimetableSubTiles: true, qSubjectsSubTiles: true, @@ -569,6 +575,7 @@ class SettingsProvider extends ChangeNotifier { bool get newColors => _newColors; bool get uwuMode => _uwuMode; bool get newPopups => _newPopups; + List get unseenNewFeatures => _unseenNewFeatures; bool get qTimetableLessonNum => _qTimetableLessonNum; bool get qTimetableSubTiles => _qTimetableSubTiles; bool get qSubjectsSubTiles => _qSubjectsSubTiles; @@ -637,6 +644,7 @@ class SettingsProvider extends ChangeNotifier { bool? newColors, bool? uwuMode, bool? newPopups, + List? unseenNewFeatures, bool? qTimetableLessonNum, bool? qTimetableSubTiles, bool? qSubjectsSubTiles, @@ -828,6 +836,9 @@ class SettingsProvider extends ChangeNotifier { if (newPopups != null && newPopups != _newPopups) { _newPopups = newPopups; } + if (unseenNewFeatures != null && unseenNewFeatures != _unseenNewFeatures) { + _unseenNewFeatures = unseenNewFeatures; + } if (qTimetableLessonNum != null && qTimetableLessonNum != _qTimetableLessonNum) { _qTimetableLessonNum = qTimetableLessonNum; diff --git a/refilc_mobile_ui/lib/common/beta_chip.dart b/refilc_mobile_ui/lib/common/chips/beta_chip.dart similarity index 95% rename from refilc_mobile_ui/lib/common/beta_chip.dart rename to refilc_mobile_ui/lib/common/chips/beta_chip.dart index 0b42185c..2967a472 100644 --- a/refilc_mobile_ui/lib/common/beta_chip.dart +++ b/refilc_mobile_ui/lib/common/chips/beta_chip.dart @@ -1,5 +1,6 @@ import 'package:refilc/theme/colors/colors.dart'; import 'package:flutter/material.dart'; +import 'chips.i18n.dart'; class BetaChip extends StatelessWidget { const BetaChip({super.key, this.disabled = false}); @@ -22,7 +23,7 @@ class BetaChip extends StatelessWidget { padding: const EdgeInsets.only(left: 8, right: 8), child: Center( child: Text( - "BETA", + "beta".i18n, softWrap: true, style: TextStyle( fontSize: 10, diff --git a/refilc_mobile_ui/lib/common/chips/chips.i18n.dart b/refilc_mobile_ui/lib/common/chips/chips.i18n.dart new file mode 100644 index 00000000..965c39ed --- /dev/null +++ b/refilc_mobile_ui/lib/common/chips/chips.i18n.dart @@ -0,0 +1,24 @@ +import 'package:i18n_extension/i18n_extension.dart'; + +extension ScreensLocalization on String { + static final _t = Translations.byLocale("hu_hu") + + { + "en_en": { + "new": "NEW", + "beta": "BETA", + }, + "hu_hu": { + "new": "ÚJ", + "beta": "BÉTA", + }, + "de_de": { + "new": "NEU", + "beta": "BETA", + }, + }; + + String get i18n => localize(this, _t); + String fill(List params) => localizeFill(this, params); + String plural(int value) => localizePlural(value, this, _t); + String version(Object modifier) => localizeVersion(modifier, this, _t); +} diff --git a/refilc_mobile_ui/lib/common/chips/new_chip.dart b/refilc_mobile_ui/lib/common/chips/new_chip.dart new file mode 100644 index 00000000..a4829629 --- /dev/null +++ b/refilc_mobile_ui/lib/common/chips/new_chip.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:refilc/theme/colors/colors.dart'; +import 'chips.i18n.dart'; + +class NewChip extends StatelessWidget { + const NewChip({super.key, this.disabled = false}); + + final bool disabled; + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + color: + disabled ? AppColors.of(context).text.withOpacity(.25) : Colors.red, + borderRadius: BorderRadius.circular(12.0), + ), + padding: + const EdgeInsets.only(left: 6.0, right: 8.0, top: 4.0, bottom: 4.0), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.hotel_class_rounded, + color: disabled + ? AppColors.of(context).text.withOpacity(.5) + : Colors.white, + size: 14.0, + ), + const SizedBox(width: 2.0), + Text( + 'new'.i18n, + style: TextStyle( + color: disabled + ? AppColors.of(context).text.withOpacity(.5) + : Colors.white, + fontSize: 12.0, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + ); + } +} diff --git a/refilc_mobile_ui/lib/plus/plus_screen.dart b/refilc_mobile_ui/lib/plus/plus_screen.dart index 9cd7e8a0..b75d1778 100644 --- a/refilc_mobile_ui/lib/plus/plus_screen.dart +++ b/refilc_mobile_ui/lib/plus/plus_screen.dart @@ -389,6 +389,8 @@ class PlusScreenState extends State { ), ), child: CheckboxListTile( + side: + const BorderSide(color: Colors.black, width: 2.0), contentPadding: const EdgeInsets.only(left: 15.0, right: 10.0), value: docsAccepted, diff --git a/refilc_mobile_ui/lib/screens/settings/desktop_settings.dart b/refilc_mobile_ui/lib/screens/settings/desktop_settings.dart index 54c6fe1c..b6fe1228 100644 --- a/refilc_mobile_ui/lib/screens/settings/desktop_settings.dart +++ b/refilc_mobile_ui/lib/screens/settings/desktop_settings.dart @@ -13,7 +13,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_feather_icons/flutter_feather_icons.dart'; import 'package:provider/provider.dart'; import 'package:refilc_mobile_ui/screens/settings/settings_screen.i18n.dart'; -import 'package:refilc_mobile_ui/common/beta_chip.dart'; +import 'package:refilc_mobile_ui/common/chips/beta_chip.dart'; class MenuDesktopSettings extends StatelessWidget { const MenuDesktopSettings({super.key, required this.settings}); From 92f16e054dd32d34270171889edd52ea419724b0 Mon Sep 17 00:00:00 2001 From: Kima Date: Mon, 17 Jun 2024 22:47:30 +0200 Subject: [PATCH 03/27] finished new badge thingie --- refilc/lib/models/settings.dart | 2 +- .../lib/screens/settings/settings_screen.dart | 9 +++++++++ .../settings/submenu/extras_screen.dart | 19 +++++++++++++++---- refilc_plus | 2 +- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/refilc/lib/models/settings.dart b/refilc/lib/models/settings.dart index 990d978a..6bde6b20 100644 --- a/refilc/lib/models/settings.dart +++ b/refilc/lib/models/settings.dart @@ -502,7 +502,7 @@ class SettingsProvider extends ChangeNotifier { newColors: true, uwuMode: false, newPopups: true, - unseenNewFeatures: [], + unseenNewFeatures: ['grade_exporting'], qTimetableLessonNum: true, qTimetableSubTiles: true, qSubjectsSubTiles: true, diff --git a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart index 7bb157d6..50d431a8 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart @@ -1074,6 +1074,15 @@ class SettingsScreenState extends State title: const Text('pushTimetableToCalendar'), onPressed: () async {}, ), + PanelButton( + title: const Text('resetNewBadges'), + onPressed: () async { + Provider.of(context, listen: false) + .update( + unseenNewFeatures: ['grade_exporting'], + ); + }, + ), ], ), // developer options diff --git a/refilc_mobile_ui/lib/screens/settings/submenu/extras_screen.dart b/refilc_mobile_ui/lib/screens/settings/submenu/extras_screen.dart index 293a59c3..c347a756 100644 --- a/refilc_mobile_ui/lib/screens/settings/submenu/extras_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/submenu/extras_screen.dart @@ -2,6 +2,7 @@ import 'package:refilc/api/providers/user_provider.dart'; import 'package:refilc/models/settings.dart'; import 'package:refilc/theme/colors/colors.dart'; +import 'package:refilc_mobile_ui/common/chips/new_chip.dart'; import 'package:refilc_mobile_ui/common/panel/panel_button.dart'; import 'package:refilc_mobile_ui/common/splitted_panel/splitted_panel.dart'; import 'package:refilc_mobile_ui/screens/settings/settings_helper.dart'; @@ -39,10 +40,20 @@ class MenuExtrasSettings extends StatelessWidget { size: 22.0, color: AppColors.of(context).text.withOpacity(0.95), ), - trailing: Icon( - FeatherIcons.chevronRight, - size: 22.0, - color: AppColors.of(context).text.withOpacity(0.95), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (Provider.of(context) + .unseenNewFeatures + .toSet() + .intersection({'grade_exporting'}).isNotEmpty) + const NewChip(), + Icon( + FeatherIcons.chevronRight, + size: 22.0, + color: AppColors.of(context).text.withOpacity(0.95), + ) + ], ), borderRadius: borderRadius, ); diff --git a/refilc_plus b/refilc_plus index 3f9f65af..866b82f9 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 3f9f65aff84e3f6ba96604f2901fe522287f112a +Subproject commit 866b82f97166cb3dd6984f70084479c7d4e94796 From b5b0046ef5b38ccd31ba940b6998e62607b09852 Mon Sep 17 00:00:00 2001 From: Kima Date: Tue, 18 Jun 2024 14:44:53 +0200 Subject: [PATCH 04/27] =?UTF-8?q?things=E2=84=A2=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- refilc/lib/models/self_note.dart | 2 +- .../lib/pages/notes/notes_page.dart | 39 ++++++-- .../lib/screens/settings/settings_helper.dart | 23 ++++- .../settings/settings_screen.i18n.dart | 12 ++- .../settings/submenu/personalize_screen.dart | 97 +++++++++++++++++-- 5 files changed, 151 insertions(+), 22 deletions(-) diff --git a/refilc/lib/models/self_note.dart b/refilc/lib/models/self_note.dart index cbaf42b6..281a264c 100644 --- a/refilc/lib/models/self_note.dart +++ b/refilc/lib/models/self_note.dart @@ -60,7 +60,7 @@ class TodoItem { ); } - get toJson => { + Map get toJson => { 'id': id, 'title': title, 'content': content, diff --git a/refilc_mobile_ui/lib/pages/notes/notes_page.dart b/refilc_mobile_ui/lib/pages/notes/notes_page.dart index 5921b59c..eac27c67 100644 --- a/refilc_mobile_ui/lib/pages/notes/notes_page.dart +++ b/refilc_mobile_ui/lib/pages/notes/notes_page.dart @@ -88,6 +88,7 @@ class NotesPageState extends State with TickerProviderStateMixin { // todo tiles List toDoTiles = []; + // TODO: FIX THIS ASAP if (hw.isNotEmpty && Provider.of(context, listen: false) .hasScope(PremiumScopes.unlimitedSelfNotes)) { @@ -98,13 +99,23 @@ class NotesPageState extends State with TickerProviderStateMixin { '${(e.subject.isRenamed ? e.subject.renamedTo : e.subject.name) ?? ''}, ${e.content.escapeHtml()}', isTicked: doneItems[e.id] ?? false, onTap: (p0) async { + print(p0); + print(doneItems); if (!doneItems.containsKey(e.id)) { doneItems.addAll({e.id: p0}); } else { doneItems[e.id] = p0; } + print(doneItems); + print(doneItems[e.id]); + print(user.id); await databaseProvider.userStore .storeToDoItem(doneItems, userId: user.id!); + + setState(() {}); + + print( + await databaseProvider.userQuery.toDoItems(userId: user.id!)); }, ))); } @@ -116,10 +127,20 @@ class NotesPageState extends State with TickerProviderStateMixin { description: e.content, isTicked: e.done, onTap: (p0) async { - todoItems.firstWhere((element) => element.id == e.id).done = p0; + final todoItemIndex = + todoItems.indexWhere((element) => element.id == e.id); + if (todoItemIndex != -1) { + TodoItem todoItem = todoItems[todoItemIndex]; + Map todoItemJson = todoItem.toJson; + todoItemJson['done'] = p0; + todoItem = TodoItem.fromJson(todoItemJson); + todoItems[todoItemIndex] = todoItem; + await databaseProvider.userStore + .storeSelfTodoItems(todoItems, userId: user.id!); + } - await databaseProvider.userStore - .storeSelfTodoItems(todoItems, userId: user.id!); + // await databaseProvider.userStore + // .storeSelfTodoItems(todoItems, userId: user.id!); }, ))); } @@ -468,13 +489,13 @@ class NotesPageState extends State with TickerProviderStateMixin { ], ), onTap: () { - if (!Provider.of(context, listen: false) - .hasScope(PremiumScopes.unlimitedSelfNotes)) { - PlusLockedFeaturePopup.show( - context: context, feature: PremiumFeature.selfNotes); + // if (!Provider.of(context, listen: false) + // .hasScope(PremiumScopes.unlimitedSelfNotes)) { + // PlusLockedFeaturePopup.show( + // context: context, feature: PremiumFeature.selfNotes); - return; - } + // return; + // } showTaskCreation(context); }, diff --git a/refilc_mobile_ui/lib/screens/settings/settings_helper.dart b/refilc_mobile_ui/lib/screens/settings/settings_helper.dart index 7ae79206..4cc2e372 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_helper.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_helper.dart @@ -128,13 +128,34 @@ class SettingsHelper { // } // } - static void fontFamily(BuildContext context) { + static void fontFamily(BuildContext context, + {required Function() showDialog}) { SettingsProvider settings = Provider.of(context, listen: false); showBottomSheetMenu( context, items: List.generate(fontList.length, (index) { + // if (index == fontList.length) { + // return BottomSheetMenuItem( + // onPressed: showDialog, + // title: Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: [ + // Text( + // SettingsLocalization('custom').i18n, + // ), + // if (fontList.contains(settings.fontFamily) == false && + // settings.fontFamily != '') + // Icon( + // Icons.check_circle, + // color: Theme.of(context).colorScheme.secondary, + // ), + // ], + // ), + // ); + // } + String font = fontList[index]; return BottomSheetMenuItem( onPressed: () { diff --git a/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart b/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart index dff11eae..3351848e 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart @@ -5,7 +5,8 @@ extension SettingsLocalization on String { { "en_en": { "heads_up": "Heads up!", - "export_warning": "Exported grades are currently not yet viewable in reFilc, you'll only be able to view them manually in JSON format. In the future, this functionality will be extended and you will be able to view the tickets in the app interface.", + "export_warning": + "Exported grades are currently not yet viewable in reFilc, you'll only be able to view them manually in JSON format. In the future, this functionality will be extended and you will be able to view the tickets in the app interface.", "personal_details": "Personal Details", "open_dkt": "Open DCS", "edit_nickname": "Edit Nickname", @@ -126,10 +127,12 @@ extension SettingsLocalization on String { "new_popups": "New Popups", "export_method": "Export Method", "grade_exporting": "Grade Exporting", + "custom": "Custom", }, "hu_hu": { "heads_up": "Figyelem!", - "export_warning": "Az exportált jegyek jelenleg még nem megtekinthetők a reFilc-ben, csak te magad tudod átnézni őket JSON formátumban. A jövőben ez a funkció bővülni fog, és a jegyeket meg is tekintheted majd a reFilc felületén.", + "export_warning": + "Az exportált jegyek jelenleg még nem megtekinthetők a reFilc-ben, csak te magad tudod átnézni őket JSON formátumban. A jövőben ez a funkció bővülni fog, és a jegyeket meg is tekintheted majd a reFilc felületén.", "personal_details": "Személyes információk", "open_dkt": "DKT megnyitása", "edit_nickname": "Becenév szerkesztése", @@ -250,10 +253,12 @@ extension SettingsLocalization on String { "new_popups": "Új felugró ablakok", "export_method": "Exportálási mód", "grade_exporting": "Jegy exportálás", + "custom": "Egyedi", }, "de_de": { "heads_up": "Achtung!", - "export_warning": "Exportierte Tickets sind derzeit noch nicht in reFilc einsehbar, Sie können sie nur selbst im JSON- Format überprüfen. In Zukunft wird diese Funktionalität erweitert und Sie werden die Tickets in der reFilc-Oberfläche anzeigen können", + "export_warning": + "Exportierte Tickets sind derzeit noch nicht in reFilc einsehbar, Sie können sie nur selbst im JSON- Format überprüfen. In Zukunft wird diese Funktionalität erweitert und Sie werden die Tickets in der reFilc-Oberfläche anzeigen können", "personal_details": "Persönliche Angaben", "open_dkt": "Öffnen RDZ", "edit_nickname": "Spitznamen bearbeiten", @@ -374,6 +379,7 @@ extension SettingsLocalization on String { "new_popups": "Neue Popups", "export_method": "Exportmethode", "grade_exporting": "Noten exportieren", + "custom": "Benutzerdefiniert", }, }; diff --git a/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart b/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart index 696fa333..e1872faf 100644 --- a/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart @@ -79,6 +79,8 @@ class PersonalizeSettingsScreenState extends State late AnimationController _hideContainersController; + final TextEditingController _customFontFamily = TextEditingController(); + late List editedShit; late List otherShit; @@ -927,15 +929,94 @@ class PersonalizeSettingsScreenState extends State children: [ PanelButton( onPressed: () { - if (!Provider.of(context, listen: false) - .hasScope(PremiumScopes.customFont)) { - PlusLockedFeaturePopup.show( - context: context, - feature: PremiumFeature.fontChange); - return; - } + // if (!Provider.of(context, listen: false) + // .hasScope(PremiumScopes.customFont)) { + // PlusLockedFeaturePopup.show( + // context: context, + // feature: PremiumFeature.fontChange); + // return; + // } - SettingsHelper.fontFamily(context); + SettingsHelper.fontFamily( + context, + showDialog: () => showDialog( + context: context, + builder: (context) => AlertDialog( + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.all( + Radius.circular(14.0))), + contentPadding: + const EdgeInsets.only(top: 10.0), + title: Text("custom".i18n), + content: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 24.0, vertical: 10.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextField( + controller: _customFontFamily, + decoration: InputDecoration( + border: OutlineInputBorder( + borderSide: const BorderSide( + color: Colors.grey, width: 1.5), + borderRadius: + BorderRadius.circular(12.0), + ), + focusedBorder: OutlineInputBorder( + borderSide: const BorderSide( + color: Colors.grey, width: 1.5), + borderRadius: + BorderRadius.circular(12.0), + ), + contentPadding: + const EdgeInsets.symmetric( + horizontal: 12.0), + hintText: "ff_name".i18n, + suffixIcon: IconButton( + icon: const Icon( + FeatherIcons.x, + color: Colors.grey, + ), + onPressed: () { + setState(() { + _customFontFamily.text = ""; + }); + }, + ), + ), + ), + ], + ), + ), + actions: [ + TextButton( + child: Text( + "cancel".i18n, + style: const TextStyle( + fontWeight: FontWeight.w500), + ), + onPressed: () { + Navigator.of(context).maybePop(); + }, + ), + TextButton( + child: Text( + "next".i18n, + style: const TextStyle( + fontWeight: FontWeight.w500), + ), + onPressed: () async { + settingsProvider.update( + fontFamily: _customFontFamily.text); + + Navigator.of(context).pop(true); + }, + ), + ], + ), + ), + ); setState(() {}); }, title: Text( From de0e8e1317aaa0451c61b76ce33eec22c01b3564 Mon Sep 17 00:00:00 2001 From: Kima Date: Tue, 18 Jun 2024 21:26:43 +0200 Subject: [PATCH 05/27] fixed good student mode percentage bug --- refilc_kreta_api/lib/providers/grade_provider.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/refilc_kreta_api/lib/providers/grade_provider.dart b/refilc_kreta_api/lib/providers/grade_provider.dart index f17203cc..9385c2fd 100644 --- a/refilc_kreta_api/lib/providers/grade_provider.dart +++ b/refilc_kreta_api/lib/providers/grade_provider.dart @@ -111,8 +111,9 @@ class GradeProvider with ChangeNotifier { grade.teacher.renamedTo = renamedTeachers.isNotEmpty ? renamedTeachers[grade.teacher.id] : null; - grade.value.value = - _settings.goodStudent ? 5 : grade.json!["SzamErtek"] ?? 0; + grade.value.value = _settings.goodStudent + ? (grade.value.percentage ? 100 : 5) + : grade.json!["SzamErtek"] ?? 0; grade.value.valueName = _settings.goodStudent ? "Jeles".i18n : '${grade.json!["SzovegesErtek"]}' From e23bdac995d2206f42e739fd89d6ef7965e14001 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 16:43:56 +0200 Subject: [PATCH 06/27] fixed sort issue --- refilc_mobile_ui/lib/pages/grades/grades_page.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/refilc_mobile_ui/lib/pages/grades/grades_page.dart b/refilc_mobile_ui/lib/pages/grades/grades_page.dart index 4e6163dc..fcc7dc78 100644 --- a/refilc_mobile_ui/lib/pages/grades/grades_page.dart +++ b/refilc_mobile_ui/lib/pages/grades/grades_page.dart @@ -162,7 +162,12 @@ class GradesPageState extends State { bool hasHomework = homeworkCount > 0; List allExams = examProvider.exams; - allExams.sort((a, b) => a.date.compareTo(b.date)); + try { + allExams.sort((a, b) => a.date.compareTo(b.date)); + } catch (e) { + print('failed to sort exams, reason: flutter'); + allExams = []; + } Exam? nearestExam = allExams.firstWhereOrNull((e) => e.subject.id == subject.id && e.writeDate.isAfter(DateTime.now())); From 051cdc895ed2e590ad58575669a0ca780d5470e0 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 20:28:47 +0200 Subject: [PATCH 07/27] fixed issues --- refilc/lib/helpers/notification_helper.dart | 4 ++-- .../lib/screens/navigation/navigation_route_handler.dart | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/refilc/lib/helpers/notification_helper.dart b/refilc/lib/helpers/notification_helper.dart index 9ee1a493..19598669 100644 --- a/refilc/lib/helpers/notification_helper.dart +++ b/refilc/lib/helpers/notification_helper.dart @@ -22,7 +22,7 @@ import 'package:intl/intl.dart'; import 'package:refilc_kreta_api/models/message.dart'; // if you want to add a new category, also add it to the DB or else the app will probably crash -enum LastSeenCategory { +enum LastSeenCategory { grade, surprisegrade, absence, @@ -655,7 +655,7 @@ nem lesz tőle használhatatlan az app, de kikommenteltem, mert még a végén k lesson.lessonIndex, lesson.name, dayTitle(lesson.date), - lesson.substituteTeacher!.isRenamed + (lesson.substituteTeacher?.isRenamed ?? false) ? lesson.substituteTeacher!.renamedTo! : lesson.substituteTeacher!.name ], diff --git a/refilc_mobile_ui/lib/screens/navigation/navigation_route_handler.dart b/refilc_mobile_ui/lib/screens/navigation/navigation_route_handler.dart index 7c06e1fb..f741d4c5 100644 --- a/refilc_mobile_ui/lib/screens/navigation/navigation_route_handler.dart +++ b/refilc_mobile_ui/lib/screens/navigation/navigation_route_handler.dart @@ -2,6 +2,7 @@ import 'package:refilc_mobile_ui/pages/absences/absences_page.dart'; import 'package:refilc_mobile_ui/pages/grades/grades_page.dart'; import 'package:refilc_mobile_ui/pages/home/home_page.dart'; +import 'package:refilc_mobile_ui/pages/messages/messages_page.dart'; import 'package:refilc_mobile_ui/pages/notes/notes_page.dart'; // import 'package:refilc_mobile_ui/pages/messages/messages_page.dart'; import 'package:refilc_mobile_ui/pages/timetable/timetable_page.dart'; @@ -20,8 +21,8 @@ Route navigationRouteHandler(RouteSettings settings) { return navigationPageRoute((context) => const NotesPage()); case "absences": return navigationPageRoute((context) => const AbsencesPage()); - // case "messages": - // return navigationPageRoute((context) => const MessagesPage()); + case "messages": + return navigationPageRoute((context) => const MessagesPage()); // case "absences": // return navigationPageRoute((context) => const AbsencesPage()); default: From 796b35e27ce65357f84a946ba905cf12974ce8c8 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 21:15:47 +0200 Subject: [PATCH 08/27] made lesson countdown rotatable --- .../lib/pages/home/live_card/live_card.dart | 61 +++++++++++++++++-- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/refilc_mobile_ui/lib/pages/home/live_card/live_card.dart b/refilc_mobile_ui/lib/pages/home/live_card/live_card.dart index 1092e9dd..6d8253d5 100644 --- a/refilc_mobile_ui/lib/pages/home/live_card/live_card.dart +++ b/refilc_mobile_ui/lib/pages/home/live_card/live_card.dart @@ -1,6 +1,7 @@ // ignore_for_file: unnecessary_null_comparison import 'package:animations/animations.dart'; +import 'package:flutter/services.dart'; import 'package:refilc/api/providers/user_provider.dart'; import 'package:refilc/helpers/subject.dart'; import 'package:refilc/models/settings.dart'; @@ -43,6 +44,10 @@ class LiveCardStateA extends State { _userProvider = Provider.of(context, listen: false); liveCard = Provider.of(context, listen: false); _userProvider.addListener(liveCard.update); + + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + ]); } @override @@ -419,14 +424,38 @@ class LiveCardStateA extends State { if (progressCurrent != null && progressMax != null) GestureDetector( - onTap: () { - showDialog( + onTap: () async { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + DeviceOrientation.landscapeRight, + DeviceOrientation.landscapeLeft, + ]); + + SystemChrome.setSystemUIOverlayStyle( + const SystemUiOverlayStyle( + statusBarColor: Colors.transparent, + statusBarIconBrightness: + Brightness.dark, + systemNavigationBarColor: + Colors.transparent, + systemNavigationBarIconBrightness: + Brightness.dark, + )); + + var result = await showDialog( barrierColor: Colors.black, context: context, builder: (context) => HeadsUpCountdown( maxTime: maxTime, elapsedTime: elapsedTime), ); + + if (result != null) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + ]); + } }, child: Container( color: Colors.transparent, @@ -825,14 +854,38 @@ class LiveCardStateA extends State { if (progressCurrent != null && progressMax != null) GestureDetector( - onTap: () { - showDialog( + onTap: () async { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + DeviceOrientation.landscapeRight, + DeviceOrientation.landscapeLeft, + ]); + + SystemChrome.setSystemUIOverlayStyle( + const SystemUiOverlayStyle( + statusBarColor: Colors.transparent, + statusBarIconBrightness: + Brightness.dark, + systemNavigationBarColor: + Colors.transparent, + systemNavigationBarIconBrightness: + Brightness.dark, + )); + + var result = await showDialog( barrierColor: Colors.black, context: context, builder: (context) => HeadsUpCountdown( maxTime: maxTime, elapsedTime: elapsedTime), ); + + if (result != null) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + ]); + } }, child: Container( color: Colors.transparent, From d4df0170a32e78522ef1dd5cd5ee582ffc06637b Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 21:23:19 +0200 Subject: [PATCH 09/27] fixed final grades ugly ui --- .../cretification/certification_view.dart | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart b/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart index 270c95de..6654bfa8 100644 --- a/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart +++ b/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart @@ -13,31 +13,43 @@ class CertificationView extends StatelessWidget { final List grades; final GradeType gradeType; - static show(List grades, {required BuildContext context, required GradeType gradeType}) => - Navigator.of(context, rootNavigator: true).push(CupertinoPageRoute(builder: (context) => CertificationView(grades, gradeType: gradeType))); + static show(List grades, + {required BuildContext context, required GradeType gradeType}) => + Navigator.of(context, rootNavigator: true).push(CupertinoPageRoute( + builder: (context) => + CertificationView(grades, gradeType: gradeType))); @override Widget build(BuildContext context) { grades.sort((a, b) => a.subject.name.compareTo(b.subject.name)); - List tiles = grades.map((e) => CertificationTile(e)).toList(); + List tiles = grades + .map((e) => CertificationTile( + e, + padding: EdgeInsets.symmetric(horizontal: 8.0, vertical: 5.0), + )) + .toList(); return Scaffold( - body: HeroScrollView( + body: HeroScrollView( title: getGradeTypeTitle(gradeType), icon: FeatherIcons.award, iconSize: 50, - child: ListView( + child: ListView( shrinkWrap: true, padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 24.0), physics: const BouncingScrollPhysics(), children: [ SafeArea( child: Panel( + padding: + const EdgeInsets.symmetric(vertical: 8.0, horizontal: 4.0), child: Column( children: tiles, ), ), ) ], - ))); + ), + ), + ); } } From 52c2f3090dba1fef77ec04a570f35de8300d1bfa Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 21:28:04 +0200 Subject: [PATCH 10/27] fixed grade provider translation issues --- refilc_kreta_api/lib/providers/grade_provider.dart | 8 +++++--- .../lib/providers/grade_provider.i18n.dart | 12 +++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/refilc_kreta_api/lib/providers/grade_provider.dart b/refilc_kreta_api/lib/providers/grade_provider.dart index 9385c2fd..210be492 100644 --- a/refilc_kreta_api/lib/providers/grade_provider.dart +++ b/refilc_kreta_api/lib/providers/grade_provider.dart @@ -116,9 +116,11 @@ class GradeProvider with ChangeNotifier { : grade.json!["SzamErtek"] ?? 0; grade.value.valueName = _settings.goodStudent ? "Jeles".i18n - : '${grade.json!["SzovegesErtek"]}' - .replaceAll(RegExp(r'[(]+[12345]?[)]'), '') - .i18n; + : (grade.value.percentage + ? '${grade.json!["SzovegesErtek"]}' + : '${grade.json!["SzovegesErtek"]}' + .replaceAll(RegExp(r'[(]+[12345]?[)]'), '') + .i18n); grade.value.shortName = _settings.goodStudent ? "Jeles".i18n : '${grade.json!["SzovegesErtekelesRovidNev"]}' != "null" && diff --git a/refilc_kreta_api/lib/providers/grade_provider.i18n.dart b/refilc_kreta_api/lib/providers/grade_provider.i18n.dart index 1a3cfe2a..aaddbcb6 100644 --- a/refilc_kreta_api/lib/providers/grade_provider.i18n.dart +++ b/refilc_kreta_api/lib/providers/grade_provider.i18n.dart @@ -8,21 +8,27 @@ extension Localization on String { "Elégséges": "Warning but passing", "Közepes": "Passed", "Jó": "Good", - "Jeles": "Excellent" + "Jeles": "Excellent", + "Példás": "Excellent", + "Nem írt": "Did not write", }, "hu_hu": { "Elégtelen": "Elégtelen", "Elégséges": "Elégséges", "Közepes": "Közepes", "Jó": "Jó", - "Jeles": "Jeles" + "Jeles": "Jeles", + "Példás": "Példás", + "Nem írt": "Nem írt", }, "de_de": { "Elégtelen": "Ungenügend", "Elégséges": "Mangelhaft", "Közepes": "Ausreichend", "Jó": "Befriedigend", - "Jeles": "Gut" + "Jeles": "Gut", + "Példás": "Gut", + "Nem írt": "Nicht geschrieben", }, }; From 320499a466d4a99efd4ea351ca92d242c8955c9a Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 21:35:49 +0200 Subject: [PATCH 11/27] prevent double taps on new weird exam popup --- .../lib/common/widgets/exam/exam_viewable.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart b/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart index b8b4c33d..207b72fd 100644 --- a/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart +++ b/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart @@ -31,8 +31,18 @@ class ExamViewable extends StatelessWidget { @override Widget build(BuildContext context) { if (Provider.of(context).newPopups) { + bool pressed = false; + return GestureDetector( - onTap: () => ExamPopup.show(context: context, exam: exam), + onTap: () { + // prevent double tap things + if (pressed) return; + pressed = true; + ExamPopup.show(context: context, exam: exam); + Future.delayed(const Duration(seconds: 2), () { + pressed = false; + }); + }, child: ExamTile( exam, showSubject: showSubject, From 767eba377642ec5549668bf2ea67bf2f50ac1376 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 22:02:12 +0200 Subject: [PATCH 12/27] well idgaf anymore, it should be good like this (subject average thing) --- refilc_mobile_ui/lib/pages/grades/grades_page.dart | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/refilc_mobile_ui/lib/pages/grades/grades_page.dart b/refilc_mobile_ui/lib/pages/grades/grades_page.dart index fcc7dc78..4c078365 100644 --- a/refilc_mobile_ui/lib/pages/grades/grades_page.dart +++ b/refilc_mobile_ui/lib/pages/grades/grades_page.dart @@ -83,6 +83,7 @@ class GradesPageState extends State { late GradeCalculatorProvider calculatorProvider; late HomeworkProvider homeworkProvider; late ExamProvider examProvider; + late SettingsProvider settingsProvider; late String firstName; late Widget yearlyGraph; @@ -373,8 +374,14 @@ class GradesPageState extends State { ); } + print('rounding:'); + print(settingsProvider.rounding); + double subjectAvg = subjectAvgs.isNotEmpty - ? subjectAvgs.values.fold(0.0, (double a, double b) => a + b) / + ? subjectAvgs.values.fold( + 0.0, + (double a, double b) => + a.round().toDouble() + b.round().toDouble()) / subjectAvgs.length : 0.0; final double classAvg = gradeProvider.groupAverages.isNotEmpty @@ -445,6 +452,7 @@ class GradesPageState extends State { calculatorProvider = Provider.of(context); homeworkProvider = Provider.of(context); examProvider = Provider.of(context); + settingsProvider = Provider.of(context); context.watch(); From b6a933fe85cbdfbe6619d97e9c569c2a58abf4c9 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 22:09:00 +0200 Subject: [PATCH 13/27] removed total average calculatro from refilcplus and added grade export viewing --- refilc_mobile_ui/lib/pages/grades/grades_page.dart | 12 ++++++------ refilc_mobile_ui/lib/plus/plus_screen.dart | 5 +++-- refilc_mobile_ui/lib/plus/plus_screen.i18n.dart | 3 +++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/refilc_mobile_ui/lib/pages/grades/grades_page.dart b/refilc_mobile_ui/lib/pages/grades/grades_page.dart index 4c078365..5d233fda 100644 --- a/refilc_mobile_ui/lib/pages/grades/grades_page.dart +++ b/refilc_mobile_ui/lib/pages/grades/grades_page.dart @@ -698,12 +698,12 @@ class GradesPageState extends State { ], ), onTap: () { - if (!Provider.of(context, listen: false) - .hasScope(PremiumScopes.totalGradeCalculator)) { - PlusLockedFeaturePopup.show( - context: context, feature: PremiumFeature.gradeCalculation); - return; - } + // if (!Provider.of(context, listen: false) + // .hasScope(PremiumScopes.totalGradeCalculator)) { + // PlusLockedFeaturePopup.show( + // context: context, feature: PremiumFeature.gradeCalculation); + // return; + // } // SoonAlert.show(context: context); gradeCalcTotal(context); diff --git a/refilc_mobile_ui/lib/plus/plus_screen.dart b/refilc_mobile_ui/lib/plus/plus_screen.dart index b75d1778..d6d1bd32 100644 --- a/refilc_mobile_ui/lib/plus/plus_screen.dart +++ b/refilc_mobile_ui/lib/plus/plus_screen.dart @@ -222,10 +222,11 @@ class PlusScreenState extends State { // ['👥', 'rfp_2'.i18n], ['👋', 'rfp_3'.i18n], ['📓', 'rfp_4'.i18n], - ['🎓', 'rfp_6'.i18n], + // ['🎓', 'rfp_6'.i18n], + ['📩', 'rfp_17'.i18n], + ['🪟', 'rfp_18'.i18n], ['👕', 'rfp_14'.i18n], ['👑', 'rfp_15'.i18n], - ['📩', 'rfp_17'.i18n], ['🔜', 'more_soon'.i18n], ], docsAccepted: docsAccepted, diff --git a/refilc_mobile_ui/lib/plus/plus_screen.i18n.dart b/refilc_mobile_ui/lib/plus/plus_screen.i18n.dart index 4bcfd285..5c9b29b7 100644 --- a/refilc_mobile_ui/lib/plus/plus_screen.i18n.dart +++ b/refilc_mobile_ui/lib/plus/plus_screen.i18n.dart @@ -46,6 +46,7 @@ extension SettingsLocalization on String { "rfp_15": "Subscriber role in our Discord community", "rfp_16": "Private leaks and informations about upcoming features", "rfp_17": "Grade exporting", + "rfp_18": "Viewing exported grades", // other "and": " and ", "every": "Every ", @@ -98,6 +99,7 @@ extension SettingsLocalization on String { "rfp_15": "Előfizetői rang a Discord szerverünkön", "rfp_16": "Privát betekintések és információk közelgő újításokról", "rfp_17": "Jegy exportálás", + "rfp_18": "Exportált jegyek megtekintése", // other "and": " és ", "every": "Minden ", @@ -153,6 +155,7 @@ extension SettingsLocalization on String { "rfp_15": "Abonnentenrolle in unserer Discord-Community", "rfp_16": "Private Leaks und Informationen über kommende Funktionen", "rfp_17": "Notenexport", + "rfp_18": "Anzeigen exportierter Noten", // other "and": " und ", "every": "Jeder ", From cc8ce4022239e7e537a64f9025ca59ce8f2353b7 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 22:10:28 +0200 Subject: [PATCH 14/27] fixed warnings --- .../widgets/cretification/certification_view.dart | 2 +- refilc_mobile_ui/lib/pages/grades/grades_page.dart | 9 ++++++--- refilc_mobile_ui/lib/pages/notes/notes_page.dart | 14 +++++++------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart b/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart index 6654bfa8..3357f6f2 100644 --- a/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart +++ b/refilc_mobile_ui/lib/common/widgets/cretification/certification_view.dart @@ -25,7 +25,7 @@ class CertificationView extends StatelessWidget { List tiles = grades .map((e) => CertificationTile( e, - padding: EdgeInsets.symmetric(horizontal: 8.0, vertical: 5.0), + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 5.0), )) .toList(); return Scaffold( diff --git a/refilc_mobile_ui/lib/pages/grades/grades_page.dart b/refilc_mobile_ui/lib/pages/grades/grades_page.dart index 5d233fda..42864908 100644 --- a/refilc_mobile_ui/lib/pages/grades/grades_page.dart +++ b/refilc_mobile_ui/lib/pages/grades/grades_page.dart @@ -7,6 +7,7 @@ import 'dart:math'; import 'package:auto_size_text/auto_size_text.dart'; import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; +import 'package:flutter/foundation.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:refilc/api/providers/update_provider.dart'; import 'package:refilc/models/settings.dart'; @@ -166,7 +167,9 @@ class GradesPageState extends State { try { allExams.sort((a, b) => a.date.compareTo(b.date)); } catch (e) { - print('failed to sort exams, reason: flutter'); + if (kDebugMode) { + print('failed to sort exams, reason: flutter'); + } allExams = []; } @@ -374,8 +377,8 @@ class GradesPageState extends State { ); } - print('rounding:'); - print(settingsProvider.rounding); + // print('rounding:'); + // print(settingsProvider.rounding); double subjectAvg = subjectAvgs.isNotEmpty ? subjectAvgs.values.fold( diff --git a/refilc_mobile_ui/lib/pages/notes/notes_page.dart b/refilc_mobile_ui/lib/pages/notes/notes_page.dart index eac27c67..4de4664a 100644 --- a/refilc_mobile_ui/lib/pages/notes/notes_page.dart +++ b/refilc_mobile_ui/lib/pages/notes/notes_page.dart @@ -99,23 +99,23 @@ class NotesPageState extends State with TickerProviderStateMixin { '${(e.subject.isRenamed ? e.subject.renamedTo : e.subject.name) ?? ''}, ${e.content.escapeHtml()}', isTicked: doneItems[e.id] ?? false, onTap: (p0) async { - print(p0); - print(doneItems); + // print(p0); + // print(doneItems); if (!doneItems.containsKey(e.id)) { doneItems.addAll({e.id: p0}); } else { doneItems[e.id] = p0; } - print(doneItems); - print(doneItems[e.id]); - print(user.id); + // print(doneItems); + // print(doneItems[e.id]); + // print(user.id); await databaseProvider.userStore .storeToDoItem(doneItems, userId: user.id!); setState(() {}); - print( - await databaseProvider.userQuery.toDoItems(userId: user.id!)); + // print( + // await databaseProvider.userQuery.toDoItems(userId: user.id!)); }, ))); } From f16a52d0fb8d119acc5967a51927e12a45a718a2 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 22:17:12 +0200 Subject: [PATCH 15/27] changed required sdk version and app version --- refilc/pubspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index 064f4bcf..38854dc7 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -3,10 +3,10 @@ description: "Egy nem hivatalos e-KRÉTA kliens, diákoktól diákoknak." homepage: https://refilc.hu publish_to: "none" -version: 5.0.2+266 +version: 5.0.2+267 environment: - sdk: ">=2.17.0 <=3.3.2" + sdk: ">=3.3.2 <=3.4.3" dependencies: flutter: From ce02dda46cb3cec60cc7b94abc32a6b8444a503b Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 22:23:16 +0200 Subject: [PATCH 16/27] updated flutter and pub packages --- refilc/pubspec.yaml | 4 ++-- refilc_desktop_ui/pubspec.yaml | 6 +++--- refilc_kreta_api/pubspec.yaml | 6 +++--- refilc_mobile_ui/pubspec.yaml | 6 +++--- refilc_plus | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index 38854dc7..e94b7158 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -25,9 +25,9 @@ dependencies: flutter_localizations: sdk: flutter - i18n_extension: ^11.0.11 + i18n_extension: ^12.0.1 sqflite: ^2.2.0+2 - intl: ^0.18.1 + intl: ^0.19.0 provider: ^6.1.1 http: ^1.1.2 uuid: ^4.2.1 diff --git a/refilc_desktop_ui/pubspec.yaml b/refilc_desktop_ui/pubspec.yaml index cb8f8e1c..5c166a4b 100644 --- a/refilc_desktop_ui/pubspec.yaml +++ b/refilc_desktop_ui/pubspec.yaml @@ -2,7 +2,7 @@ name: refilc_desktop_ui publish_to: "none" environment: - sdk: ">=2.17.0 <=3.3.2" + sdk: ">=3.3.2 <=3.4.3" dependencies: flutter: @@ -33,11 +33,11 @@ dependencies: flutter_acrylic: ^1.1.3 elegant_notification: ^1.13.0 flutter_staggered_grid_view: ^0.7.0 - i18n_extension: ^11.0.12 + i18n_extension: ^12.0.1 flutter_expandable_fab: ^2.0.0 collection: ^1.18.0 animated_list_plus: ^0.5.2 - intl: ^0.18.1 + intl: ^0.19.0 flutter_custom_tabs: ^2.0.0+1 dev_dependencies: diff --git a/refilc_kreta_api/pubspec.yaml b/refilc_kreta_api/pubspec.yaml index f4c9ba80..d413df2b 100644 --- a/refilc_kreta_api/pubspec.yaml +++ b/refilc_kreta_api/pubspec.yaml @@ -2,7 +2,7 @@ name: refilc_kreta_api publish_to: "none" environment: - sdk: ">=2.17.0 <=3.3.2" + sdk: ">=3.3.2 <=3.4.3" dependencies: flutter: @@ -12,8 +12,8 @@ dependencies: http: ^1.1.2 provider: ^6.1.1 file_picker: ^6.1.1 - intl: ^0.18.1 - i18n_extension: ^11.0.11 + intl: ^0.19.0 + i18n_extension: ^12.0.1 uuid: ^4.3.3 dev_dependencies: diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index 109ecc62..318e60f5 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -2,7 +2,7 @@ name: refilc_mobile_ui publish_to: "none" environment: - sdk: ">=2.17.0 <=3.3.2" + sdk: ">=3.3.2 <=3.4.3" dependencies: flutter: @@ -50,8 +50,8 @@ dependencies: url: https://github.com/kimaah/rounded_expansion_tile.git go_router: ^13.2.0 flutter_expandable_fab: ^2.0.0 - intl: ^0.18.1 - i18n_extension: ^11.0.11 + intl: ^0.19.0 + i18n_extension: ^12.0.1 auto_size_text: ^3.0.0 connectivity_plus: ^5.0.2 collection: ^1.18.0 diff --git a/refilc_plus b/refilc_plus index 866b82f9..1b752823 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 866b82f97166cb3dd6984f70084479c7d4e94796 +Subproject commit 1b7528236cdc6761a98dd0ae5ab0d26bddee5501 From 8860a0269c26dac0d0d98bda225b131a65e0f5dc Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 22:34:56 +0200 Subject: [PATCH 17/27] fixed warnings after update --- refilc/lib/database/struct.dart | 4 +- refilc/lib/theme/theme.dart | 12 +- refilc/lib/ui/filter/widgets.dart | 2 +- .../lib/ui/flutter_colorpicker/palette.dart | 2 +- refilc_desktop_ui/lib/common/filter_bar.dart | 2 +- .../lib/pages/absences/absences_page.dart | 2 +- .../lib/screens/settings/settings_screen.dart | 2 +- refilc_mobile_ui/lib/common/bottom_card.dart | 2 +- .../rounded_bottom_sheet.dart | 2 +- refilc_mobile_ui/lib/common/filter_bar.dart | 2 +- .../lib/common/outlined_round_button.dart | 2 +- refilc_mobile_ui/lib/common/panel/panel.dart | 8 +- .../lib/common/sliding_bottom_sheet.dart | 6 +- .../common/splitted_panel/splitted_panel.dart | 2 +- refilc_mobile_ui/lib/common/viewable.dart | 119 ++++++++++++------ .../cretification/certification_tile.dart | 2 +- .../widgets/custom_segmented_control.dart | 2 +- .../lib/common/widgets/event/event_tile.dart | 2 +- .../common/widgets/exam/exam_viewable.dart | 6 +- .../widgets/lesson/changed_lesson_tile.dart | 2 +- .../widgets/lesson/lesson_viewable.dart | 10 +- .../widgets/message/message_viewable.dart | 4 +- .../lib/common/widgets/statistics_tile.dart | 2 +- .../lib/pages/grades/average_selector.dart | 6 +- .../lib/pages/grades/grades_page.dart | 12 +- refilc_mobile_ui/lib/pages/grades/graph.dart | 2 +- .../home/live_card/live_card_widget.dart | 4 +- .../lib/pages/messages/messages_page.dart | 2 +- .../messages/send_message/send_message.dart | 6 +- .../lib/pages/notes/notes_page.dart | 6 +- .../pages/notes/submenu/self_note_tile.dart | 2 +- .../lib/pages/timetable/timetable_page.dart | 12 +- .../lib/screens/error_report_screen.dart | 14 +-- .../lib/screens/error_screen.dart | 2 +- .../lib/screens/login/login_screen_new.dart | 2 +- .../school_input/school_input_overlay.dart | 2 +- .../screens/navigation/navigation_screen.dart | 2 +- .../settings/modify_subject_names.dart | 4 +- .../lib/screens/settings/settings_screen.dart | 2 +- .../settings/submenu/edit_subject.dart | 4 +- .../settings/submenu/grade_colors.dart | 2 +- .../screens/settings/submenu/paint_list.dart | 2 +- .../settings/submenu/personalize_screen.dart | 6 +- .../lib/screens/settings/theme_screen.dart | 10 +- .../summary/pages/personality_page.dart | 4 +- refilc_plus | 2 +- 46 files changed, 177 insertions(+), 132 deletions(-) diff --git a/refilc/lib/database/struct.dart b/refilc/lib/database/struct.dart index bb33de6c..d5947c66 100644 --- a/refilc/lib/database/struct.dart +++ b/refilc/lib/database/struct.dart @@ -8,10 +8,10 @@ class DatabaseStruct { String typeName = ""; switch (type.runtimeType) { - case int: + case const (int): typeName = "integer"; break; - case String: + case const (String): typeName = "text"; break; } diff --git a/refilc/lib/theme/theme.dart b/refilc/lib/theme/theme.dart index 1ddd93e4..405ac95c 100644 --- a/refilc/lib/theme/theme.dart +++ b/refilc/lib/theme/theme.dart @@ -125,8 +125,6 @@ class AppTheme { onTertiary: (newTertiary.computeLuminance() > 0.5 ? Colors.black : Colors.white) .withOpacity(.9), - background: highlightColor, - onBackground: Colors.black.withOpacity(.9), brightness: Brightness.light, error: lightColors.red, onError: Colors.white.withOpacity(.9), @@ -141,9 +139,9 @@ class AppTheme { indicatorColor: accent.withOpacity(accentColor == AccentColor.adaptive ? 0.4 : 0.8), iconTheme: - MaterialStateProperty.all(IconThemeData(color: lightColors.text)), + WidgetStateProperty.all(IconThemeData(color: lightColors.text)), backgroundColor: highlightColor, - labelTextStyle: MaterialStateProperty.all(TextStyle( + labelTextStyle: WidgetStateProperty.all(TextStyle( fontSize: 13.0, fontWeight: FontWeight.w500, color: lightColors.text.withOpacity(0.8), @@ -250,8 +248,6 @@ class AppTheme { onTertiary: (newTertiary.computeLuminance() > 0.5 ? Colors.black : Colors.white) .withOpacity(.9), - background: highlightColor, - onBackground: Colors.white.withOpacity(.9), brightness: Brightness.dark, error: darkColors.red, onError: Colors.black.withOpacity(.9), @@ -266,9 +262,9 @@ class AppTheme { indicatorColor: accent.withOpacity(accentColor == AccentColor.adaptive ? 0.4 : 0.8), iconTheme: - MaterialStateProperty.all(IconThemeData(color: darkColors.text)), + WidgetStateProperty.all(IconThemeData(color: darkColors.text)), backgroundColor: highlightColor, - labelTextStyle: MaterialStateProperty.all(TextStyle( + labelTextStyle: WidgetStateProperty.all(TextStyle( fontSize: 13.0, fontWeight: FontWeight.w500, color: darkColors.text.withOpacity(0.8), diff --git a/refilc/lib/ui/filter/widgets.dart b/refilc/lib/ui/filter/widgets.dart index b3683db0..5142a884 100644 --- a/refilc/lib/ui/filter/widgets.dart +++ b/refilc/lib/ui/filter/widgets.dart @@ -259,7 +259,7 @@ Widget filterItemBuilder( ? const EdgeInsets.symmetric(vertical: 8.0) : const EdgeInsets.symmetric(vertical: 4.0), decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.vertical( top: separated || isAfterSeparated ? const Radius.circular(16.0) diff --git a/refilc/lib/ui/flutter_colorpicker/palette.dart b/refilc/lib/ui/flutter_colorpicker/palette.dart index 3571a869..b569b2b8 100644 --- a/refilc/lib/ui/flutter_colorpicker/palette.dart +++ b/refilc/lib/ui/flutter_colorpicker/palette.dart @@ -364,7 +364,7 @@ class ColorPickerInputState extends State { controller: textEditingController, style: TextStyle( fontSize: 18, - color: Theme.of(context).colorScheme.onBackground, + color: Theme.of(context).colorScheme.onSurface, ), inputFormatters: [ UpperCaseTextFormatter(), diff --git a/refilc_desktop_ui/lib/common/filter_bar.dart b/refilc_desktop_ui/lib/common/filter_bar.dart index 7e0b51be..790f9e9e 100644 --- a/refilc_desktop_ui/lib/common/filter_bar.dart +++ b/refilc_desktop_ui/lib/common/filter_bar.dart @@ -41,7 +41,7 @@ class FilterBar extends StatelessWidget implements PreferredSizeWidget { color: Theme.of(context).colorScheme.secondary.withOpacity(0.25), borderRadius: BorderRadius.circular(45.0), ), - overlayColor: MaterialStateProperty.all(const Color(0x00000000)), + overlayColor: WidgetStateProperty.all(const Color(0x00000000)), // Tabs padding: EdgeInsets.zero, tabs: items, diff --git a/refilc_desktop_ui/lib/pages/absences/absences_page.dart b/refilc_desktop_ui/lib/pages/absences/absences_page.dart index aff6b4ad..33e09066 100644 --- a/refilc_desktop_ui/lib/pages/absences/absences_page.dart +++ b/refilc_desktop_ui/lib/pages/absences/absences_page.dart @@ -287,7 +287,7 @@ class AbsencesPageState extends State return FadeThroughTransition( animation: primaryAnimation, secondaryAnimation: secondaryAnimation, - fillColor: Theme.of(context).colorScheme.background, + fillColor: Theme.of(context).colorScheme.surface, child: child, ); }, diff --git a/refilc_desktop_ui/lib/screens/settings/settings_screen.dart b/refilc_desktop_ui/lib/screens/settings/settings_screen.dart index 16334b15..e8ca7a84 100644 --- a/refilc_desktop_ui/lib/screens/settings/settings_screen.dart +++ b/refilc_desktop_ui/lib/screens/settings/settings_screen.dart @@ -776,7 +776,7 @@ class SettingsScreenState extends State decoration: BoxDecoration( color: Theme.of(context) .colorScheme - .background), + .surface), child: Material( type: MaterialType.transparency, child: SwitchListTile( diff --git a/refilc_mobile_ui/lib/common/bottom_card.dart b/refilc_mobile_ui/lib/common/bottom_card.dart index b0d23a38..689b209e 100644 --- a/refilc_mobile_ui/lib/common/bottom_card.dart +++ b/refilc_mobile_ui/lib/common/bottom_card.dart @@ -14,7 +14,7 @@ class BottomCard extends StatelessWidget { child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(14.0), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, ), child: Column( mainAxisSize: MainAxisSize.min, diff --git a/refilc_mobile_ui/lib/common/bottom_sheet_menu/rounded_bottom_sheet.dart b/refilc_mobile_ui/lib/common/bottom_sheet_menu/rounded_bottom_sheet.dart index 9a64aa28..8c60603b 100644 --- a/refilc_mobile_ui/lib/common/bottom_sheet_menu/rounded_bottom_sheet.dart +++ b/refilc_mobile_ui/lib/common/bottom_sheet_menu/rounded_bottom_sheet.dart @@ -22,7 +22,7 @@ class RoundedBottomSheet extends StatelessWidget { return AnimatedContainer( duration: const Duration(milliseconds: 500), decoration: BoxDecoration( - color: backgroundColor ?? Theme.of(context).colorScheme.background, + color: backgroundColor ?? Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.only( topLeft: Radius.circular(borderRadius), topRight: Radius.circular(borderRadius), diff --git a/refilc_mobile_ui/lib/common/filter_bar.dart b/refilc_mobile_ui/lib/common/filter_bar.dart index 019b4c55..cac92941 100644 --- a/refilc_mobile_ui/lib/common/filter_bar.dart +++ b/refilc_mobile_ui/lib/common/filter_bar.dart @@ -64,7 +64,7 @@ class _FilterBarState extends State { color: Theme.of(context).colorScheme.tertiary.withOpacity(.2), borderRadius: BorderRadius.circular(45.0), ), - overlayColor: MaterialStateProperty.all(const Color(0x00000000)), + overlayColor: WidgetStateProperty.all(const Color(0x00000000)), // Tabs padding: EdgeInsets.zero, tabs: widget.censored diff --git a/refilc_mobile_ui/lib/common/outlined_round_button.dart b/refilc_mobile_ui/lib/common/outlined_round_button.dart index 8eedb663..ae3fd5c2 100644 --- a/refilc_mobile_ui/lib/common/outlined_round_button.dart +++ b/refilc_mobile_ui/lib/common/outlined_round_button.dart @@ -22,7 +22,7 @@ class OutlinedRoundButton extends StatelessWidget { width: size, height: size, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, border: Border.all( color: Theme.of(context).colorScheme.secondary.withOpacity(0.1), width: 1.1, diff --git a/refilc_mobile_ui/lib/common/panel/panel.dart b/refilc_mobile_ui/lib/common/panel/panel.dart index 7a144a11..3c61396d 100644 --- a/refilc_mobile_ui/lib/common/panel/panel.dart +++ b/refilc_mobile_ui/lib/common/panel/panel.dart @@ -35,7 +35,7 @@ class Panel extends StatelessWidget { borderRadius: BorderRadius.circular(16.0), color: isTransparent ? Colors.transparent - : Theme.of(context).colorScheme.background, + : Theme.of(context).colorScheme.surface, boxShadow: [ if ((hasShadow && !isTransparent) && Provider.of(context, listen: false) @@ -87,7 +87,7 @@ class PanelHeader extends StatelessWidget { decoration: BoxDecoration( borderRadius: const BorderRadius.only( topLeft: Radius.circular(16.0), topRight: Radius.circular(16.0)), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, boxShadow: [ if (Provider.of(context, listen: false) .shadowEffect) @@ -113,7 +113,7 @@ class PanelBody extends StatelessWidget { return Container( width: double.infinity, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, boxShadow: [ if (Provider.of(context, listen: false) .shadowEffect) @@ -144,7 +144,7 @@ class PanelFooter extends StatelessWidget { borderRadius: const BorderRadius.only( bottomLeft: Radius.circular(16.0), bottomRight: Radius.circular(16.0)), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, boxShadow: [ if (Provider.of(context, listen: false) .shadowEffect) diff --git a/refilc_mobile_ui/lib/common/sliding_bottom_sheet.dart b/refilc_mobile_ui/lib/common/sliding_bottom_sheet.dart index daf2302a..b1568577 100644 --- a/refilc_mobile_ui/lib/common/sliding_bottom_sheet.dart +++ b/refilc_mobile_ui/lib/common/sliding_bottom_sheet.dart @@ -9,7 +9,7 @@ void showSlidingBottomSheet( cornerRadius: 16, cornerRadiusOnFullscreen: 0, avoidStatusBar: true, - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, duration: const Duration(milliseconds: 400), snapSpec: const ss.SnapSpec( snap: true, @@ -18,7 +18,7 @@ void showSlidingBottomSheet( ), headerBuilder: (context, state) { return Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, child: Column( mainAxisSize: MainAxisSize.min, children: [ @@ -37,7 +37,7 @@ void showSlidingBottomSheet( }, builder: (context, state) { return Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, child: Padding( padding: const EdgeInsets.fromLTRB(12.0, 0, 12.0, 8.0), child: child), diff --git a/refilc_mobile_ui/lib/common/splitted_panel/splitted_panel.dart b/refilc_mobile_ui/lib/common/splitted_panel/splitted_panel.dart index 4517b48e..402e16ff 100644 --- a/refilc_mobile_ui/lib/common/splitted_panel/splitted_panel.dart +++ b/refilc_mobile_ui/lib/common/splitted_panel/splitted_panel.dart @@ -46,7 +46,7 @@ class SplittedPanel extends StatelessWidget { decoration: BoxDecoration( color: isTransparent ? Colors.transparent - : Theme.of(context).colorScheme.background, + : Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.vertical( top: Radius.circular(i == 0 ? 16.0 : 8.0), bottom: Radius.circular(children!.length == i + 1 ? 16.0 : 8.0), diff --git a/refilc_mobile_ui/lib/common/viewable.dart b/refilc_mobile_ui/lib/common/viewable.dart index 205a8e4e..8cad17b2 100644 --- a/refilc_mobile_ui/lib/common/viewable.dart +++ b/refilc_mobile_ui/lib/common/viewable.dart @@ -10,7 +10,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; -double valueFromPercentageInRange({required final double min, max, percentage}) { +double valueFromPercentageInRange( + {required final double min, max, percentage}) { return percentage * (max - min) + min; } @@ -44,7 +45,8 @@ typedef _ViewablePreviewBuilderChildless = Widget Function( Rect _getRect(GlobalKey globalKey) { assert(globalKey.currentContext != null); - final RenderBox renderBoxContainer = globalKey.currentContext!.findRenderObject()! as RenderBox; + final RenderBox renderBoxContainer = + globalKey.currentContext!.findRenderObject()! as RenderBox; final Offset containerOffset = renderBoxContainer.localToGlobal( renderBoxContainer.paintBounds.topLeft, ); @@ -101,7 +103,8 @@ class _ViewableState extends State with TickerProviderStateMixin { final double screenWidth = MediaQuery.of(context).size.width; final double center = screenWidth / 2; - final bool centerDividesChild = childRect.left < center && childRect.right > center; + final bool centerDividesChild = + childRect.left < center && childRect.right > center; final double distanceFromCenter = (center - childRect.center.dx).abs(); if (centerDividesChild && distanceFromCenter <= childRect.width / 4) { return _ViewableLocation.center; @@ -132,7 +135,7 @@ class _ViewableState extends State with TickerProviderStateMixin { return ClipRRect( borderRadius: BorderRadius.circular(16.0), child: Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(16.0), child: Stack( children: [ @@ -270,7 +273,8 @@ class _DecoyChild extends StatefulWidget { _DecoyChildState createState() => _DecoyChildState(); } -class _DecoyChildState extends State<_DecoyChild> with TickerProviderStateMixin { +class _DecoyChildState extends State<_DecoyChild> + with TickerProviderStateMixin { static const Color _lightModeMaskColor = Color(0xFF888888); static const Color _masklessColor = Color(0xFFFFFFFF); @@ -327,7 +331,9 @@ class _DecoyChildState extends State<_DecoyChild> with TickerProviderStateMixin } Widget _buildAnimation(BuildContext context, Widget? child) { - final Color color = widget.controller.status == AnimationStatus.reverse ? _masklessColor : _mask.value; + final Color color = widget.controller.status == AnimationStatus.reverse + ? _masklessColor + : _mask.value; return Positioned.fromRect( rect: _rect.value!, child: ShaderMask( @@ -373,7 +379,8 @@ class _ViewableRoute extends PopupRoute { static const Color _kModalBarrierColor = Color(0x6604040F); - static const Duration _kModalPopupTransitionDuration = Duration(milliseconds: 335); + static const Duration _kModalPopupTransitionDuration = + Duration(milliseconds: 335); final List _actions; final _ViewablePreviewBuilderChildless? _builder; @@ -396,7 +403,8 @@ class _ViewableRoute extends PopupRoute { static final RectTween _rectTween = RectTween(); static final Animatable _rectAnimatable = _rectTween.chain(_curve); static final RectTween _rectTweenReverse = RectTween(); - static final Animatable _rectAnimatableReverse = _rectTweenReverse.chain( + static final Animatable _rectAnimatableReverse = + _rectTweenReverse.chain( _curveReverse, ); static final RectTween _sheetRectTween = RectTween(); @@ -407,10 +415,12 @@ class _ViewableRoute extends PopupRoute { _curveReverse, ); static final Tween _sheetScaleTween = Tween(); - static final Animatable _sheetScaleAnimatable = _sheetScaleTween.chain( + static final Animatable _sheetScaleAnimatable = + _sheetScaleTween.chain( _curve, ); - static final Animatable _sheetScaleAnimatableReverse = _sheetScaleTween.chain( + static final Animatable _sheetScaleAnimatableReverse = + _sheetScaleTween.chain( _curveReverse, ); final Tween _opacityTween = Tween(begin: 0.0, end: 1.0); @@ -441,7 +451,8 @@ class _ViewableRoute extends PopupRoute { return offsetScaled & sizeScaled; } - static AlignmentDirectional getSheetAlignment(_ViewableLocation contextMenuLocation) { + static AlignmentDirectional getSheetAlignment( + _ViewableLocation contextMenuLocation) { switch (contextMenuLocation) { case _ViewableLocation.center: return AlignmentDirectional.topCenter; @@ -452,17 +463,24 @@ class _ViewableRoute extends PopupRoute { } } - static Rect _getSheetRectBegin(Orientation? orientation, _ViewableLocation contextMenuLocation, Rect childRect, Rect sheetRect) { + static Rect _getSheetRectBegin(Orientation? orientation, + _ViewableLocation contextMenuLocation, Rect childRect, Rect sheetRect) { switch (contextMenuLocation) { case _ViewableLocation.center: - final Offset target = orientation == Orientation.portrait ? childRect.bottomCenter : childRect.topCenter; + final Offset target = orientation == Orientation.portrait + ? childRect.bottomCenter + : childRect.topCenter; final Offset centered = target - Offset(sheetRect.width / 2, 0.0); return centered & sheetRect.size; case _ViewableLocation.right: - final Offset target = orientation == Orientation.portrait ? childRect.bottomRight : childRect.topRight; + final Offset target = orientation == Orientation.portrait + ? childRect.bottomRight + : childRect.topRight; return (target - Offset(sheetRect.width, 0.0)) & sheetRect.size; case _ViewableLocation.left: - final Offset target = orientation == Orientation.portrait ? childRect.bottomLeft : childRect.topLeft; + final Offset target = orientation == Orientation.portrait + ? childRect.bottomLeft + : childRect.topLeft; return target & sheetRect.size; } } @@ -478,7 +496,9 @@ class _ViewableRoute extends PopupRoute { } void _updateTweenRects() { - final Rect childRect = _scale == null ? _getRect(_childGlobalKey) : _getScaledRect(_childGlobalKey, _scale!); + final Rect childRect = _scale == null + ? _getRect(_childGlobalKey) + : _getScaledRect(_childGlobalKey, _scale!); _rectTween.begin = _previousChildRect; _rectTween.end = childRect; @@ -546,21 +566,29 @@ class _ViewableRoute extends PopupRoute { } @override - Widget buildPage(BuildContext context, Animation animation, Animation secondaryAnimation) { + Widget buildPage(BuildContext context, Animation animation, + Animation secondaryAnimation) { return Container(); } @override - Widget buildTransitions(BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { + Widget buildTransitions(BuildContext context, Animation animation, + Animation secondaryAnimation, Widget child) { return OrientationBuilder( builder: (BuildContext context, Orientation orientation) { _lastOrientation = orientation; if (!animation.isCompleted) { final bool reverse = animation.status == AnimationStatus.reverse; - final Rect rect = reverse ? _rectAnimatableReverse.evaluate(animation)! : _rectAnimatable.evaluate(animation)!; - final Rect sheetRect = reverse ? _sheetRectAnimatableReverse.evaluate(animation)! : _sheetRectAnimatable.evaluate(animation)!; - final double sheetScale = reverse ? _sheetScaleAnimatableReverse.evaluate(animation) : _sheetScaleAnimatable.evaluate(animation); + final Rect rect = reverse + ? _rectAnimatableReverse.evaluate(animation)! + : _rectAnimatable.evaluate(animation)!; + final Rect sheetRect = reverse + ? _sheetRectAnimatableReverse.evaluate(animation)! + : _sheetRectAnimatable.evaluate(animation)!; + final double sheetScale = reverse + ? _sheetScaleAnimatableReverse.evaluate(animation) + : _sheetScaleAnimatable.evaluate(animation); return Stack( children: [ Positioned.fromRect( @@ -623,7 +651,8 @@ class _ContextMenuRouteStatic extends StatefulWidget { _ContextMenuRouteStaticState createState() => _ContextMenuRouteStaticState(); } -class _ContextMenuRouteStaticState extends State<_ContextMenuRouteStatic> with TickerProviderStateMixin { +class _ContextMenuRouteStaticState extends State<_ContextMenuRouteStatic> + with TickerProviderStateMixin { static const double _kMinScale = 0.8; static const double _kSheetScaleThreshold = 0.9; @@ -639,7 +668,8 @@ class _ContextMenuRouteStaticState extends State<_ContextMenuRouteStatic> with T late Animation _sheetScaleAnimation; late Animation _sheetOpacityAnimation; - static double _getScale(Orientation orientation, double maxDragDistance, double dy) { + static double _getScale( + Orientation orientation, double maxDragDistance, double dy) { final double dyDirectional = dy <= 0.0 ? dy : -dy; return math.max( _kMinScale, @@ -659,11 +689,13 @@ class _ContextMenuRouteStaticState extends State<_ContextMenuRouteStatic> with T void _onPanEnd(DragEndDetails details) { if (details.velocity.pixelsPerSecond.dy.abs() >= kMinFlingVelocity) { final bool flingIsAway = details.velocity.pixelsPerSecond.dy > 0; - final double finalPosition = flingIsAway ? _moveAnimation.value.dy + 100.0 : 0.0; + final double finalPosition = + flingIsAway ? _moveAnimation.value.dy + 100.0 : 0.0; if (flingIsAway && _sheetController.status != AnimationStatus.forward) { _sheetController.forward(); - } else if (!flingIsAway && _sheetController.status != AnimationStatus.reverse) { + } else if (!flingIsAway && + _sheetController.status != AnimationStatus.reverse) { _sheetController.reverse(); } @@ -713,20 +745,29 @@ class _ContextMenuRouteStaticState extends State<_ContextMenuRouteStatic> with T widget.onDismiss!(context, _lastScale, _sheetOpacityAnimation.value); } - Alignment _getChildAlignment(Orientation orientation, _ViewableLocation contextMenuLocation) { + Alignment _getChildAlignment( + Orientation orientation, _ViewableLocation contextMenuLocation) { switch (contextMenuLocation) { case _ViewableLocation.center: - return orientation == Orientation.portrait ? Alignment.bottomCenter : Alignment.topRight; + return orientation == Orientation.portrait + ? Alignment.bottomCenter + : Alignment.topRight; case _ViewableLocation.right: - return orientation == Orientation.portrait ? Alignment.bottomCenter : Alignment.topLeft; + return orientation == Orientation.portrait + ? Alignment.bottomCenter + : Alignment.topLeft; case _ViewableLocation.left: - return orientation == Orientation.portrait ? Alignment.bottomCenter : Alignment.topRight; + return orientation == Orientation.portrait + ? Alignment.bottomCenter + : Alignment.topRight; } } void _setDragOffset(Offset dragOffset) { final double endX = _kPadding * dragOffset.dx / _kDamping; - final double endY = dragOffset.dy >= 0.0 ? dragOffset.dy : _kPadding * dragOffset.dy / _kDamping; + final double endY = dragOffset.dy >= 0.0 + ? dragOffset.dy + : _kPadding * dragOffset.dy / _kDamping; setState(() { _dragOffset = dragOffset; _moveAnimation = Tween( @@ -742,15 +783,20 @@ class _ContextMenuRouteStaticState extends State<_ContextMenuRouteStatic> with T ), ); - if (_lastScale <= _kSheetScaleThreshold && _sheetController.status != AnimationStatus.forward && _sheetScaleAnimation.value != 0.0) { + if (_lastScale <= _kSheetScaleThreshold && + _sheetController.status != AnimationStatus.forward && + _sheetScaleAnimation.value != 0.0) { _sheetController.forward(); - } else if (_lastScale > _kSheetScaleThreshold && _sheetController.status != AnimationStatus.reverse && _sheetScaleAnimation.value != 1.0) { + } else if (_lastScale > _kSheetScaleThreshold && + _sheetController.status != AnimationStatus.reverse && + _sheetScaleAnimation.value != 1.0) { _sheetController.reverse(); } }); } - List _getChildren(Orientation orientation, _ViewableLocation contextMenuLocation) { + List _getChildren( + Orientation orientation, _ViewableLocation contextMenuLocation) { final Expanded child = Expanded( child: Align( alignment: _getChildAlignment( @@ -781,7 +827,9 @@ class _ContextMenuRouteStaticState extends State<_ContextMenuRouteStatic> with T case _ViewableLocation.center: return [child, spacer, sheet]; case _ViewableLocation.right: - return orientation == Orientation.portrait ? [child, spacer, sheet] : [sheet, spacer, child]; + return orientation == Orientation.portrait + ? [child, spacer, sheet] + : [sheet, spacer, child]; case _ViewableLocation.left: return [child, spacer, sheet]; } @@ -915,7 +963,8 @@ class _ViewableSheet extends StatelessWidget { decoration: BoxDecoration( border: Border( top: BorderSide( - color: CupertinoDynamicColor.resolve(_borderColor, context), + color: + CupertinoDynamicColor.resolve(_borderColor, context), width: 0.5, )), ), diff --git a/refilc_mobile_ui/lib/common/widgets/cretification/certification_tile.dart b/refilc_mobile_ui/lib/common/widgets/cretification/certification_tile.dart index 683f0847..5702fbce 100644 --- a/refilc_mobile_ui/lib/common/widgets/cretification/certification_tile.dart +++ b/refilc_mobile_ui/lib/common/widgets/cretification/certification_tile.dart @@ -59,7 +59,7 @@ class CertificationTile extends StatelessWidget { } return Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(8.0), child: Padding( padding: padding ?? const EdgeInsets.symmetric(horizontal: 8.0), diff --git a/refilc_mobile_ui/lib/common/widgets/custom_segmented_control.dart b/refilc_mobile_ui/lib/common/widgets/custom_segmented_control.dart index a9bf40b4..86d44f0c 100644 --- a/refilc_mobile_ui/lib/common/widgets/custom_segmented_control.dart +++ b/refilc_mobile_ui/lib/common/widgets/custom_segmented_control.dart @@ -38,7 +38,7 @@ class CustomSegmentedControl extends StatelessWidget { borderRadius: BorderRadius.circular(12.0), ), thumbDecoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(10.0), // boxShadow: [ // BoxShadow( diff --git a/refilc_mobile_ui/lib/common/widgets/event/event_tile.dart b/refilc_mobile_ui/lib/common/widgets/event/event_tile.dart index 17c8f7e4..6c0dc2ab 100644 --- a/refilc_mobile_ui/lib/common/widgets/event/event_tile.dart +++ b/refilc_mobile_ui/lib/common/widgets/event/event_tile.dart @@ -13,7 +13,7 @@ class EventTile extends StatelessWidget { @override Widget build(BuildContext context) { return Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(14.0), child: Padding( padding: padding ?? const EdgeInsets.symmetric(horizontal: 8.0), diff --git a/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart b/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart index 207b72fd..129d8aea 100644 --- a/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart +++ b/refilc_mobile_ui/lib/common/widgets/exam/exam_viewable.dart @@ -208,7 +208,7 @@ class ExamPopup extends StatelessWidget { Container( width: double.infinity, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.vertical( top: Radius.circular(12.0), bottom: Radius.circular(6.0)), @@ -266,7 +266,7 @@ class ExamPopup extends StatelessWidget { Container( width: double.infinity, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.vertical( top: Radius.circular(6.0), bottom: Radius.circular(12.0)), @@ -348,7 +348,7 @@ class ExamPopup extends StatelessWidget { // child: Container( // width: double.infinity, // decoration: BoxDecoration( - // color: Theme.of(context).colorScheme.background, + // color: Theme.of(context).colorScheme.surface, // borderRadius: BorderRadius.circular(12.0), // ), // padding: const EdgeInsets.all(16.0), diff --git a/refilc_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart b/refilc_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart index ffcbb25e..95c4e686 100644 --- a/refilc_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart +++ b/refilc_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart @@ -34,7 +34,7 @@ class ChangedLessonTile extends StatelessWidget { } return Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(14.0), child: Padding( padding: padding ?? const EdgeInsets.symmetric(horizontal: 8.0), diff --git a/refilc_mobile_ui/lib/common/widgets/lesson/lesson_viewable.dart b/refilc_mobile_ui/lib/common/widgets/lesson/lesson_viewable.dart index cec6307c..90a34026 100644 --- a/refilc_mobile_ui/lib/common/widgets/lesson/lesson_viewable.dart +++ b/refilc_mobile_ui/lib/common/widgets/lesson/lesson_viewable.dart @@ -417,7 +417,7 @@ class TimetableLessonPopup extends StatelessWidget { Container( width: double.infinity, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.vertical( top: Radius.circular(12.0), bottom: Radius.circular(6.0), @@ -521,7 +521,7 @@ class TimetableLessonPopup extends StatelessWidget { Container( width: double.infinity, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.vertical( top: Radius.circular(6.0), bottom: Radius.circular(6.0), @@ -549,7 +549,7 @@ class TimetableLessonPopup extends StatelessWidget { Container( width: double.infinity, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.vertical( top: const Radius.circular(6.0), bottom: lesson.exam != '' @@ -580,7 +580,7 @@ class TimetableLessonPopup extends StatelessWidget { Container( width: double.infinity, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.vertical( top: Radius.circular(6.0), bottom: Radius.circular(12.0)), @@ -654,7 +654,7 @@ class TimetableLessonPopup extends StatelessWidget { // child: Container( // width: double.infinity, // decoration: BoxDecoration( - // color: Theme.of(context).colorScheme.background, + // color: Theme.of(context).colorScheme.surface, // borderRadius: BorderRadius.circular(12.0), // ), // padding: const EdgeInsets.all(16.0), diff --git a/refilc_mobile_ui/lib/common/widgets/message/message_viewable.dart b/refilc_mobile_ui/lib/common/widgets/message/message_viewable.dart index 3e226859..a46192f3 100644 --- a/refilc_mobile_ui/lib/common/widgets/message/message_viewable.dart +++ b/refilc_mobile_ui/lib/common/widgets/message/message_viewable.dart @@ -23,9 +23,9 @@ class MessageViewable extends StatelessWidget { RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), closedShape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), - middleColor: Theme.of(context).colorScheme.background, + middleColor: Theme.of(context).colorScheme.surface, openColor: Theme.of(context).scaffoldBackgroundColor, - closedColor: Theme.of(context).colorScheme.background, + closedColor: Theme.of(context).colorScheme.surface, transitionType: ContainerTransitionType.fadeThrough, transitionDuration: const Duration(milliseconds: 400), useRootNavigator: true, diff --git a/refilc_mobile_ui/lib/common/widgets/statistics_tile.dart b/refilc_mobile_ui/lib/common/widgets/statistics_tile.dart index e655aa9c..23afdce3 100644 --- a/refilc_mobile_ui/lib/common/widgets/statistics_tile.dart +++ b/refilc_mobile_ui/lib/common/widgets/statistics_tile.dart @@ -48,7 +48,7 @@ class StatisticsTile extends StatelessWidget { padding: const EdgeInsets.all(18.0), decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, boxShadow: [ if (Provider.of(context, listen: false) .shadowEffect) diff --git a/refilc_mobile_ui/lib/pages/grades/average_selector.dart b/refilc_mobile_ui/lib/pages/grades/average_selector.dart index e80ef04d..854a5489 100644 --- a/refilc_mobile_ui/lib/pages/grades/average_selector.dart +++ b/refilc_mobile_ui/lib/pages/grades/average_selector.dart @@ -84,9 +84,9 @@ class AverageSelectorState extends State { elevation: 8, scrollbarTheme: ScrollbarThemeData( radius: const Radius.circular(40), - thickness: MaterialStateProperty.all(6.0), - trackVisibility: MaterialStateProperty.all(true), - thumbVisibility: MaterialStateProperty.all(true), + thickness: WidgetStateProperty.all(6.0), + trackVisibility: WidgetStateProperty.all(true), + thumbVisibility: WidgetStateProperty.all(true), ), offset: const Offset(-10, -10), ), diff --git a/refilc_mobile_ui/lib/pages/grades/grades_page.dart b/refilc_mobile_ui/lib/pages/grades/grades_page.dart index 42864908..c81bc2f8 100644 --- a/refilc_mobile_ui/lib/pages/grades/grades_page.dart +++ b/refilc_mobile_ui/lib/pages/grades/grades_page.dart @@ -205,7 +205,7 @@ class GradesPageState extends State { ? const Radius.circular(8.0) : const Radius.circular(16.0), ), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, ), child: Padding( padding: const EdgeInsets.symmetric( @@ -256,7 +256,7 @@ class GradesPageState extends State { ? const Radius.circular(8.0) : const Radius.circular(16.0), ), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, ), child: Padding( padding: const EdgeInsets.only( @@ -307,7 +307,7 @@ class GradesPageState extends State { bottomLeft: Radius.circular(16.0), bottomRight: Radius.circular(16.0), ), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, ), child: ExamViewable( nearestExam, @@ -689,7 +689,7 @@ class GradesPageState extends State { Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: ListTile( title: Row( children: [ @@ -721,7 +721,7 @@ class GradesPageState extends State { Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: ListTile( title: Row( children: [ @@ -779,7 +779,7 @@ class GradesPageState extends State { Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: SwitchListTile( title: Row( children: [ diff --git a/refilc_mobile_ui/lib/pages/grades/graph.dart b/refilc_mobile_ui/lib/pages/grades/graph.dart index a52720b9..6eac8657 100644 --- a/refilc_mobile_ui/lib/pages/grades/graph.dart +++ b/refilc_mobile_ui/lib/pages/grades/graph.dart @@ -179,7 +179,7 @@ class GradeGraphState extends State { ? Alignment.topRight : Alignment.topLeft, style: TextStyle( - backgroundColor: Theme.of(context).colorScheme.background, + backgroundColor: Theme.of(context).colorScheme.surface, color: AppColors.of(context).text, fontSize: 16.0, fontWeight: FontWeight.w600, diff --git a/refilc_mobile_ui/lib/pages/home/live_card/live_card_widget.dart b/refilc_mobile_ui/lib/pages/home/live_card/live_card_widget.dart index 07f39334..db17acff 100644 --- a/refilc_mobile_ui/lib/pages/home/live_card/live_card_widget.dart +++ b/refilc_mobile_ui/lib/pages/home/live_card/live_card_widget.dart @@ -72,10 +72,10 @@ class _LiveCardWidgetState extends State { ? const EdgeInsets.all(12.0) : EdgeInsets.zero, decoration: BoxDecoration( - // color: Theme.of(context).colorScheme.background, + // color: Theme.of(context).colorScheme.surface, color: widget.children != null ? Colors.transparent - : Theme.of(context).colorScheme.background, + : Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(16.0), boxShadow: [ if (Provider.of(context, listen: false) diff --git a/refilc_mobile_ui/lib/pages/messages/messages_page.dart b/refilc_mobile_ui/lib/pages/messages/messages_page.dart index 117c280f..6d7cdbfa 100644 --- a/refilc_mobile_ui/lib/pages/messages/messages_page.dart +++ b/refilc_mobile_ui/lib/pages/messages/messages_page.dart @@ -125,7 +125,7 @@ class MessagesPageState extends State BackButton( style: ButtonStyle( splashFactory: NoSplash.splashFactory, - padding: MaterialStateProperty.all( + padding: WidgetStateProperty.all( EdgeInsets.zero), ), ), diff --git a/refilc_mobile_ui/lib/pages/messages/send_message/send_message.dart b/refilc_mobile_ui/lib/pages/messages/send_message/send_message.dart index 869aff29..e3dbe22e 100644 --- a/refilc_mobile_ui/lib/pages/messages/send_message/send_message.dart +++ b/refilc_mobile_ui/lib/pages/messages/send_message/send_message.dart @@ -105,9 +105,9 @@ class SendMessageSheetState extends State { elevation: 8, scrollbarTheme: ScrollbarThemeData( radius: const Radius.circular(40), - thickness: MaterialStateProperty.all(6.0), - trackVisibility: MaterialStateProperty.all(true), - thumbVisibility: MaterialStateProperty.all(true), + thickness: WidgetStateProperty.all(6.0), + trackVisibility: WidgetStateProperty.all(true), + thumbVisibility: WidgetStateProperty.all(true), ), offset: const Offset(-10, -10), ), diff --git a/refilc_mobile_ui/lib/pages/notes/notes_page.dart b/refilc_mobile_ui/lib/pages/notes/notes_page.dart index 4de4664a..537fe249 100644 --- a/refilc_mobile_ui/lib/pages/notes/notes_page.dart +++ b/refilc_mobile_ui/lib/pages/notes/notes_page.dart @@ -431,7 +431,7 @@ class NotesPageState extends State with TickerProviderStateMixin { Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: ListTile( title: Row( children: [ @@ -453,7 +453,7 @@ class NotesPageState extends State with TickerProviderStateMixin { Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: ListTile( title: Row( children: [ @@ -477,7 +477,7 @@ class NotesPageState extends State with TickerProviderStateMixin { Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: ListTile( title: Row( children: [ diff --git a/refilc_mobile_ui/lib/pages/notes/submenu/self_note_tile.dart b/refilc_mobile_ui/lib/pages/notes/submenu/self_note_tile.dart index d1d50957..999c975f 100644 --- a/refilc_mobile_ui/lib/pages/notes/submenu/self_note_tile.dart +++ b/refilc_mobile_ui/lib/pages/notes/submenu/self_note_tile.dart @@ -22,7 +22,7 @@ class SelfNoteTile extends StatelessWidget { padding: const EdgeInsets.all(10.0), decoration: BoxDecoration( borderRadius: BorderRadius.circular(16.0), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, boxShadow: [ if (Provider.of(context, listen: false) .shadowEffect) diff --git a/refilc_mobile_ui/lib/pages/timetable/timetable_page.dart b/refilc_mobile_ui/lib/pages/timetable/timetable_page.dart index 0610d60a..388a9ac5 100644 --- a/refilc_mobile_ui/lib/pages/timetable/timetable_page.dart +++ b/refilc_mobile_ui/lib/pages/timetable/timetable_page.dart @@ -700,7 +700,7 @@ class TimetablePageState extends State ], color: Theme.of(context) .colorScheme - .background, + .surface, borderRadius: BorderRadius.only( topLeft: index == 0 @@ -786,7 +786,7 @@ class TimetablePageState extends State indicatorPadding: const EdgeInsets.symmetric(horizontal: 10.0), indicator: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, // color: Colors.transparent, // border: Border.all( // color: AppColors.of(context) @@ -798,7 +798,7 @@ class TimetablePageState extends State // .withOpacity(0.25), borderRadius: BorderRadius.circular(16.0), ), - overlayColor: MaterialStateProperty.all( + overlayColor: WidgetStateProperty.all( const Color(0x00000000)), // Tabs padding: const EdgeInsets.symmetric( @@ -899,7 +899,7 @@ class TimetablePageState extends State Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: ListTile( contentPadding: const EdgeInsets.only(left: 16.0, right: 10.0), title: Row( @@ -943,7 +943,7 @@ class TimetablePageState extends State Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: SwitchListTile( contentPadding: const EdgeInsets.only(left: 16.0, right: 10.0), title: Row( @@ -990,7 +990,7 @@ class TimetablePageState extends State Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), - color: Theme.of(context).colorScheme.background), + color: Theme.of(context).colorScheme.surface), child: SwitchListTile( contentPadding: const EdgeInsets.only(left: 16.0, right: 10.0), title: Row( diff --git a/refilc_mobile_ui/lib/screens/error_report_screen.dart b/refilc_mobile_ui/lib/screens/error_report_screen.dart index aed20d1c..6313bd50 100644 --- a/refilc_mobile_ui/lib/screens/error_report_screen.dart +++ b/refilc_mobile_ui/lib/screens/error_report_screen.dart @@ -110,10 +110,10 @@ class ErrorReportScreen extends StatelessWidget { height: 48, child: TextButton( style: ButtonStyle( - padding: MaterialStateProperty.all( + padding: WidgetStateProperty.all( const EdgeInsets.symmetric(vertical: 10.0)), - backgroundColor: MaterialStateProperty.all(Colors.black), - shape: MaterialStateProperty.all( + backgroundColor: WidgetStateProperty.all(Colors.black), + shape: WidgetStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0)), ), @@ -135,18 +135,18 @@ class ErrorReportScreen extends StatelessWidget { height: 48, child: OutlinedButton( style: ButtonStyle( - padding: MaterialStateProperty.all( + padding: WidgetStateProperty.all( const EdgeInsets.symmetric(vertical: 14.0), ), - backgroundColor: MaterialStateProperty.all( + backgroundColor: WidgetStateProperty.all( const Color(0xFFF3F7FE), ), - shape: MaterialStateProperty.all( + shape: WidgetStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0), ), ), - side: MaterialStateProperty.all( + side: WidgetStateProperty.all( const BorderSide(width: 1.0, color: Color(0xFFC7D3EB)), ), ), diff --git a/refilc_mobile_ui/lib/screens/error_screen.dart b/refilc_mobile_ui/lib/screens/error_screen.dart index 4439395e..cc119d3e 100644 --- a/refilc_mobile_ui/lib/screens/error_screen.dart +++ b/refilc_mobile_ui/lib/screens/error_screen.dart @@ -39,7 +39,7 @@ class ErrorScreen extends StatelessWidget { width: double.infinity, decoration: BoxDecoration( borderRadius: BorderRadius.circular(14.0), - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, ), child: CupertinoScrollbar( child: SingleChildScrollView( diff --git a/refilc_mobile_ui/lib/screens/login/login_screen_new.dart b/refilc_mobile_ui/lib/screens/login/login_screen_new.dart index 7c9cab0e..d2b3fd0e 100644 --- a/refilc_mobile_ui/lib/screens/login/login_screen_new.dart +++ b/refilc_mobile_ui/lib/screens/login/login_screen_new.dart @@ -221,7 +221,7 @@ // horizontal: 16), // child: FilledButton( // style: ButtonStyle( -// shape: MaterialStateProperty.all< +// shape: WidgetStateProperty.all< // RoundedRectangleBorder>( // const RoundedRectangleBorder( // borderRadius: BorderRadius.all( diff --git a/refilc_mobile_ui/lib/screens/login/school_input/school_input_overlay.dart b/refilc_mobile_ui/lib/screens/login/school_input/school_input_overlay.dart index 42795079..2fbc71e2 100644 --- a/refilc_mobile_ui/lib/screens/login/school_input/school_input_overlay.dart +++ b/refilc_mobile_ui/lib/screens/login/school_input/school_input_overlay.dart @@ -47,7 +47,7 @@ class SchoolInputOverlayWidget extends StatelessWidget { showWhenUnlinked: false, offset: Offset(0.0, size.height + 5.0), child: Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8.0)), elevation: 4.0, diff --git a/refilc_mobile_ui/lib/screens/navigation/navigation_screen.dart b/refilc_mobile_ui/lib/screens/navigation/navigation_screen.dart index cfef95e6..0a43ba84 100644 --- a/refilc_mobile_ui/lib/screens/navigation/navigation_screen.dart +++ b/refilc_mobile_ui/lib/screens/navigation/navigation_screen.dart @@ -302,7 +302,7 @@ class NavigationScreenState extends State children: [ // Status bar Material( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, child: const StatusBar(), ), diff --git a/refilc_mobile_ui/lib/screens/settings/modify_subject_names.dart b/refilc_mobile_ui/lib/screens/settings/modify_subject_names.dart index aa1c7be1..25e4e615 100644 --- a/refilc_mobile_ui/lib/screens/settings/modify_subject_names.dart +++ b/refilc_mobile_ui/lib/screens/settings/modify_subject_names.dart @@ -178,8 +178,8 @@ class _ModifySubjectNamesState extends State { elevation: 8, scrollbarTheme: ScrollbarThemeData( radius: const Radius.circular(40), - thickness: MaterialStateProperty.all(6.0), - trackVisibility: MaterialStateProperty.all(true), + thickness: WidgetStateProperty.all(6.0), + trackVisibility: WidgetStateProperty.all(true), ), offset: const Offset(-10, -10), ), diff --git a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart index 50d431a8..fc7b19a7 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart @@ -993,7 +993,7 @@ class SettingsScreenState extends State fontWeight: FontWeight.w500, color: AppColors.of(context).text), decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(12.0), boxShadow: [ BoxShadow( diff --git a/refilc_mobile_ui/lib/screens/settings/submenu/edit_subject.dart b/refilc_mobile_ui/lib/screens/settings/submenu/edit_subject.dart index f5dcc092..a05cc778 100644 --- a/refilc_mobile_ui/lib/screens/settings/submenu/edit_subject.dart +++ b/refilc_mobile_ui/lib/screens/settings/submenu/edit_subject.dart @@ -202,7 +202,7 @@ class EditSubjectScreenState extends State { children: [ Container( decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.all(Radius.circular(12.0))), padding: const EdgeInsets.symmetric(vertical: 10.0), @@ -302,7 +302,7 @@ class EditSubjectScreenState extends State { children: [ Container( decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.all(Radius.circular(12.0))), padding: const EdgeInsets.symmetric(vertical: 10.0), diff --git a/refilc_mobile_ui/lib/screens/settings/submenu/grade_colors.dart b/refilc_mobile_ui/lib/screens/settings/submenu/grade_colors.dart index 50445b31..ec98d956 100644 --- a/refilc_mobile_ui/lib/screens/settings/submenu/grade_colors.dart +++ b/refilc_mobile_ui/lib/screens/settings/submenu/grade_colors.dart @@ -79,7 +79,7 @@ class GradeColorsSettingsScreenState extends State { children: [ Container( decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(75.0), boxShadow: [ BoxShadow( diff --git a/refilc_mobile_ui/lib/screens/settings/submenu/paint_list.dart b/refilc_mobile_ui/lib/screens/settings/submenu/paint_list.dart index 63a7f95e..171b6e64 100644 --- a/refilc_mobile_ui/lib/screens/settings/submenu/paint_list.dart +++ b/refilc_mobile_ui/lib/screens/settings/submenu/paint_list.dart @@ -454,7 +454,7 @@ class PaintListScreenState extends State ), Container( decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.all(Radius.circular(12.0))), padding: const EdgeInsets.symmetric(vertical: 10.0), diff --git a/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart b/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart index e1872faf..d8ea4d93 100644 --- a/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/submenu/personalize_screen.dart @@ -842,11 +842,11 @@ class PersonalizeSettingsScreenState extends State scrollbarTheme: ScrollbarThemeData( radius: const Radius.circular(40), thickness: - MaterialStateProperty.all(6.0), + WidgetStateProperty.all(6.0), trackVisibility: - MaterialStateProperty.all(true), + WidgetStateProperty.all(true), thumbVisibility: - MaterialStateProperty.all(true), + WidgetStateProperty.all(true), ), ), customButton: PanelButton( diff --git a/refilc_mobile_ui/lib/screens/settings/theme_screen.dart b/refilc_mobile_ui/lib/screens/settings/theme_screen.dart index 5068d2b3..eb7ec855 100644 --- a/refilc_mobile_ui/lib/screens/settings/theme_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/theme_screen.dart @@ -234,7 +234,7 @@ class _PremiumCustomAccentColorSettingState // bool hasAccess = Provider.of(context) // .hasScope(PremiumScopes.customColors); bool hasAccess = true; - bool isBackgroundDifferent = Theme.of(context).colorScheme.background != + bool isBackgroundDifferent = Theme.of(context).colorScheme.surface != AppColors.of(context).background; ThemeMode currentTheme = Theme.of(context).brightness == Brightness.light @@ -251,8 +251,8 @@ class _PremiumCustomAccentColorSettingState animation: _openAnimController, builder: (context, child) { final backgroundGradientBottomColor = isBackgroundDifferent - ? Theme.of(context).colorScheme.background - : HSVColor.fromColor(Theme.of(context).colorScheme.background) + ? Theme.of(context).colorScheme.surface + : HSVColor.fromColor(Theme.of(context).colorScheme.surface) .withValue(currentTheme == ThemeMode.dark ? 0.1 * _openAnimController.value : 1.0 - (0.1 * _openAnimController.value)) @@ -271,7 +271,7 @@ class _PremiumCustomAccentColorSettingState stops: const [0.0, 0.75], colors: isBackgroundDifferent ? [ - Theme.of(context).colorScheme.background.withOpacity(1 - + Theme.of(context).colorScheme.surface.withOpacity(1 - ((currentTheme == ThemeMode.dark ? 0.65 : 0.25) * backgroundAnimation.value)), backgroundGradientBottomColor, @@ -383,7 +383,7 @@ class _PremiumCustomAccentColorSettingState ], colors: [ settings.customBackgroundColor ?? - Theme.of(context).colorScheme.background, + Theme.of(context).colorScheme.surface, isBackgroundDifferent ? HSVColor.fromColor(Theme.of(context) .colorScheme diff --git a/refilc_mobile_ui/lib/screens/summary/pages/personality_page.dart b/refilc_mobile_ui/lib/screens/summary/pages/personality_page.dart index 2f78b4fa..128e9181 100644 --- a/refilc_mobile_ui/lib/screens/summary/pages/personality_page.dart +++ b/refilc_mobile_ui/lib/screens/summary/pages/personality_page.dart @@ -96,7 +96,7 @@ class PersonalityBodyState extends State { size: 30, ), style: ButtonStyle( - backgroundColor: MaterialStateProperty.all( + backgroundColor: WidgetStateProperty.all( Colors.white.withOpacity(0.2)), ), ), @@ -113,7 +113,7 @@ class PersonalityBodyState extends State { size: 30, ), style: ButtonStyle( - backgroundColor: MaterialStateProperty.all( + backgroundColor: WidgetStateProperty.all( Colors.white.withOpacity(0.2)), ), ), diff --git a/refilc_plus b/refilc_plus index 1b752823..5331cddd 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 1b7528236cdc6761a98dd0ae5ab0d26bddee5501 +Subproject commit 5331cddddada60872f5eb0dc1c3f21bb1bba4b0c From dd86c7436aa9f06f79888123752d4cc3cc396a38 Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 23:24:37 +0200 Subject: [PATCH 18/27] fix in package versioning --- refilc/pubspec.yaml | 4 ++-- refilc_mobile_ui/pubspec.yaml | 6 +++--- refilc_plus | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index e94b7158..6c76447b 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -55,7 +55,7 @@ dependencies: rive: ^0.12.4 animated_background: ^2.0.0 dropdown_button2: ^2.3.9 - home_widget: ^0.4.1 + home_widget: ^0.6.0 flutter_expandable_fab: ^2.0.0 uni_links: ^0.5.1 url_launcher: ^6.1.6 @@ -66,7 +66,7 @@ dependencies: background_fetch: ^1.1.5 flutter_local_notifications: ^16.2.0 package_info_plus: ^5.0.1 - screenshot: ^2.1.0 + screenshot: ^3.0.0 flutter_staggered_grid_view: ^0.7.0 sqflite_common_ffi_web: ^0.4.0 image_crop: diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index 318e60f5..b97c8cfb 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: flutter_feather_icons: ^2.0.0+1 provider: ^6.1.1 - fl_chart: ^0.45.1 + fl_chart: ^0.68.0 url_launcher: ^6.2.5 flutter_material_color_picker: ^1.1.0+2 photo_view: ^0.14.0 @@ -36,14 +36,14 @@ dependencies: lottie: ^3.1.0 rive: ^0.12.4 animated_background: ^2.0.0 - home_widget: ^0.4.1 + home_widget: ^0.6.0 dropdown_button2: ^2.3.9 flutter_svg: ^2.0.10+1 background_fetch: ^1.2.2 wtf_sliding_sheet: ^1.0.0 package_info_plus: ^5.0.1 dotted_border: ^2.0.0+3 - screenshot: ^2.1.0 + screenshot: ^3.0.0 image_gallery_saver: ^2.0.2 rounded_expansion_tile: git: diff --git a/refilc_plus b/refilc_plus index 5331cddd..4a330b4e 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 5331cddddada60872f5eb0dc1c3f21bb1bba4b0c +Subproject commit 4a330b4e53c577dc825292f28bf7ba9ce5288e7e From fd1b15df77987551f76211322273de02f71be23c Mon Sep 17 00:00:00 2001 From: Kima Date: Wed, 19 Jun 2024 23:34:45 +0200 Subject: [PATCH 19/27] just don't touch fl_chart --- refilc_mobile_ui/pubspec.yaml | 2 +- refilc_plus | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index b97c8cfb..1b157936 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: flutter_feather_icons: ^2.0.0+1 provider: ^6.1.1 - fl_chart: ^0.68.0 + fl_chart: ^0.45.1 url_launcher: ^6.2.5 flutter_material_color_picker: ^1.1.0+2 photo_view: ^0.14.0 diff --git a/refilc_plus b/refilc_plus index 4a330b4e..44edca7b 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 4a330b4e53c577dc825292f28bf7ba9ce5288e7e +Subproject commit 44edca7b5ed645648cc36a8d33d5c376c40120b1 From bc8eb1910e257788c35ce7f7dfee16249e37b529 Mon Sep 17 00:00:00 2001 From: Kima Date: Thu, 20 Jun 2024 12:06:50 +0200 Subject: [PATCH 20/27] upgraded pub things --- refilc/lib/helpers/share_helper.dart | 5 +- refilc/pubspec.yaml | 10 +- refilc_mobile_ui/lib/pages/grades/graph.dart | 229 ++++++++++++------- refilc_mobile_ui/pubspec.yaml | 6 +- refilc_plus | 2 +- 5 files changed, 161 insertions(+), 91 deletions(-) diff --git a/refilc/lib/helpers/share_helper.dart b/refilc/lib/helpers/share_helper.dart index 3454465c..81151e7f 100644 --- a/refilc/lib/helpers/share_helper.dart +++ b/refilc/lib/helpers/share_helper.dart @@ -6,10 +6,9 @@ import 'package:share_plus/share_plus.dart'; class ShareHelper { static Future shareText(String text, {String? subject}) => Share.share(text, subject: subject); - // ignore: deprecated_member_use + static Future shareFile(String path, {String? text, String? subject}) => - // ignore: deprecated_member_use - Share.shareFiles([path], text: text, subject: subject); + Share.shareXFiles([XFile(path)], text: text, subject: subject); static Future shareAttachment(Attachment attachment, {required BuildContext context}) async { diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index 6c76447b..58803aed 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -39,7 +39,7 @@ dependencies: # ref: master path_provider: ^2.0.2 permission_handler: ^11.0.1 - share_plus: ^7.0.2 + share_plus: ^9.0.0 connectivity_plus: ^5.0.2 flutter_displaymode: ^0.6.0 quick_actions: ^1.0.1 @@ -64,15 +64,15 @@ dependencies: image_picker: ^1.0.7 animations: ^2.0.1 background_fetch: ^1.1.5 - flutter_local_notifications: ^16.2.0 - package_info_plus: ^5.0.1 + flutter_local_notifications: ^17.1.2 + package_info_plus: ^8.0.0 screenshot: ^3.0.0 flutter_staggered_grid_view: ^0.7.0 sqflite_common_ffi_web: ^0.4.0 image_crop: git: url: https://github.com/kimaah/image_crop.git - googleapis: ^12.0.0 + googleapis: ^13.2.0 google_sign_in: ^6.2.1 extension_google_sign_in_as_googleapis_auth: ^2.0.12 maps_launcher: ^2.2.0 @@ -84,7 +84,7 @@ dependencies: flutter_portal: ^1.1.4 dev_dependencies: - flutter_lints: ^3.0.1 + flutter_lints: ^4.0.0 flutter_launcher_icons: "^0.13.1" flutter_native_splash: "^2.3.10" sqflite_common_ffi: ^2.0.0+3 diff --git a/refilc_mobile_ui/lib/pages/grades/graph.dart b/refilc_mobile_ui/lib/pages/grades/graph.dart index 6eac8657..15d8a4df 100644 --- a/refilc_mobile_ui/lib/pages/grades/graph.dart +++ b/refilc_mobile_ui/lib/pages/grades/graph.dart @@ -228,22 +228,32 @@ class GradeGraphState extends State { preventCurveOverShooting: false, spots: subjectSpots, isCurved: true, - colors: averageColors.reversed.toList(), + // colors: averageColors.reversed.toList(), + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: averageColors.reversed.toList(), + ), barWidth: 6, curveSmoothness: 0.2, isStrokeCapRound: true, - dotData: FlDotData(show: false), + dotData: const FlDotData(show: false), belowBarData: BarAreaData( show: true, - colors: [ - averageColor.withOpacity(0.7), - averageColor.withOpacity(0.3), - averageColor.withOpacity(0.2), - averageColor.withOpacity(0.1), - ], - gradientColorStops: [0.1, 0.6, 0.8, 1], - gradientFrom: const Offset(0, 0), - gradientTo: const Offset(0, 1), + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + averageColor.withOpacity(0.7), + averageColor.withOpacity(0.3), + averageColor.withOpacity(0.2), + averageColor.withOpacity(0.1), + ], + stops: const [0.1, 0.6, 0.8, 1], + ), + // gradientColorStops: [0.1, 0.6, 0.8, 1], + // gradientFrom: const Offset(0, 0), + // gradientTo: const Offset(0, 1), ), ), if (ghostData.isNotEmpty && ghostSpots.isNotEmpty) @@ -251,28 +261,41 @@ class GradeGraphState extends State { preventCurveOverShooting: false, spots: ghostSpots, isCurved: true, - colors: [AppColors.of(context).text], + color: AppColors.of(context).text, barWidth: 6, curveSmoothness: 0.2, isStrokeCapRound: true, - dotData: FlDotData(show: false), + dotData: const FlDotData(show: false), belowBarData: BarAreaData( show: true, - colors: [ - AppColors.of(context).text.withOpacity(0.7), - AppColors.of(context).text.withOpacity(0.3), - AppColors.of(context).text.withOpacity(0.2), - AppColors.of(context).text.withOpacity(0.1), - ], - gradientColorStops: [0.1, 0.6, 0.8, 1], - gradientFrom: const Offset(0, 0), - gradientTo: const Offset(0, 1), + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + AppColors.of(context) + .text + .withOpacity(0.7), + AppColors.of(context) + .text + .withOpacity(0.3), + AppColors.of(context) + .text + .withOpacity(0.2), + AppColors.of(context) + .text + .withOpacity(0.1), + ], + stops: const [0.1, 0.6, 0.8, 1], + ), + // gradientColorStops: [0.1, 0.6, 0.8, 1], + // gradientFrom: const Offset(0, 0), + // gradientTo: const Offset(0, 1), ), ), ], minY: 1, maxY: 5, - gridData: FlGridData( + gridData: const FlGridData( show: true, horizontalInterval: 1, // checkToShowVerticalLine: (_) => false, @@ -286,8 +309,8 @@ class GradeGraphState extends State { // ), ), lineTouchData: LineTouchData( - touchTooltipData: LineTouchTooltipData( - tooltipBgColor: Colors.grey.shade800, + touchTooltipData: const LineTouchTooltipData( + // tooltipBgColor: Colors.grey.shade800, fitInsideVertically: true, fitInsideHorizontally: true, ), @@ -321,64 +344,112 @@ class GradeGraphState extends State { ), ), titlesData: FlTitlesData( - bottomTitles: SideTitles( - showTitles: true, - reservedSize: 24, - getTextStyles: (context, value) => TextStyle( - color: - AppColors.of(context).text.withOpacity(.75), - fontWeight: FontWeight.bold, - fontSize: 14.0, - ), - margin: 12.0, - getTitles: (value) { - var format = DateFormat( - "MMM", I18n.of(context).locale.toString()); + bottomTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + reservedSize: 24, + getTitlesWidget: (value, meta) { + if (value == meta.max || value == meta.min) { + return Container(); + } - String title = format - .format(DateTime(0, value.floor() % 12)) - .replaceAll(".", ""); - title = - title.substring(0, min(title.length, 4)); + var format = DateFormat("MMM", + I18n.of(context).locale.toString()); - return title.toUpperCase(); - }, - interval: () { - List tData = - ghostData.isNotEmpty ? ghostData : data; - tData.sort((a, b) => - a.writeDate.compareTo(b.writeDate)); - return ghostData.isNotEmpty - ? 3.0 - : tData.first.writeDate - .add(const Duration(days: 120)) - .isBefore(tData.last.writeDate) - ? 2.0 - : 2.5; - }(), - checkToShowTitle: (double minValue, - double maxValue, - SideTitles sideTitles, - double appliedInterval, - double value) { - if (value == maxValue || value == minValue) { - return false; - } - return true; - }, - ), - leftTitles: SideTitles( - showTitles: true, - interval: 1.0, - getTextStyles: (context, value) => TextStyle( - color: AppColors.of(context).text, - fontWeight: FontWeight.bold, - fontSize: 18.0, + String title = format + .format(DateTime(0, value.floor() % 12)) + .replaceAll(".", ""); + title = + title.substring(0, min(title.length, 4)); + + return Padding( + padding: const EdgeInsets.all(12.0), + child: Text( + title.toUpperCase(), + style: TextStyle( + color: AppColors.of(context) + .text + .withOpacity(.75), + fontWeight: FontWeight.bold, + fontSize: 14.0, + ), + ), + ); + }, + // getTextStyles: (context, value) => TextStyle( + // color: AppColors.of(context) + // .text + // .withOpacity(.75), + // fontWeight: FontWeight.bold, + // fontSize: 14.0, + // ), + // margin: 12.0, + // getTitles: (value) { + // var format = DateFormat("MMM", + // I18n.of(context).locale.toString()); + + // String title = format + // .format(DateTime(0, value.floor() % 12)) + // .replaceAll(".", ""); + // title = + // title.substring(0, min(title.length, 4)); + + // return title.toUpperCase(); + // }, + interval: () { + List tData = + ghostData.isNotEmpty ? ghostData : data; + tData.sort((a, b) => + a.writeDate.compareTo(b.writeDate)); + return ghostData.isNotEmpty + ? 3.0 + : tData.first.writeDate + .add(const Duration(days: 120)) + .isBefore(tData.last.writeDate) + ? 2.0 + : 2.5; + }(), + // checkToShowTitle: (double minValue, + // double maxValue, + // SideTitles sideTitles, + // double appliedInterval, + // double value) { + // if (value == maxValue || value == minValue) { + // return false; + // } + // return true; + // }, ), - margin: 16, ), - rightTitles: SideTitles(showTitles: false), - topTitles: SideTitles(showTitles: false), + leftTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + interval: 1.0, + getTitlesWidget: (value, meta) => Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + value.toInt().toString(), + style: TextStyle( + color: AppColors.of(context).text, + fontWeight: FontWeight.bold, + fontSize: 18.0, + ), + ), + ), + // getTextStyles: (context, value) => TextStyle( + // color: AppColors.of(context).text, + // fontWeight: FontWeight.bold, + // fontSize: 18.0, + // ), + // margin: 16, + ), + ), + rightTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + topTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), ), ), ), diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index 1b157936..36a4fba2 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: flutter_feather_icons: ^2.0.0+1 provider: ^6.1.1 - fl_chart: ^0.45.1 + fl_chart: ^0.68.0 url_launcher: ^6.2.5 flutter_material_color_picker: ^1.1.0+2 photo_view: ^0.14.0 @@ -41,7 +41,7 @@ dependencies: flutter_svg: ^2.0.10+1 background_fetch: ^1.2.2 wtf_sliding_sheet: ^1.0.0 - package_info_plus: ^5.0.1 + package_info_plus: ^8.0.0 dotted_border: ^2.0.0+3 screenshot: ^3.0.0 image_gallery_saver: ^2.0.2 @@ -55,7 +55,7 @@ dependencies: auto_size_text: ^3.0.0 connectivity_plus: ^5.0.2 collection: ^1.18.0 - share_plus: ^7.2.2 + share_plus: ^9.0.0 image_picker: ^1.0.7 path_provider: ^2.1.2 image_crop: diff --git a/refilc_plus b/refilc_plus index 44edca7b..8af545b5 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 44edca7b5ed645648cc36a8d33d5c376c40120b1 +Subproject commit 8af545b5a39bfbfc25c5f2a383dcdfada018cd75 From 506fb82dd08cd772516ca2f98384da6378662485 Mon Sep 17 00:00:00 2001 From: Kima Date: Thu, 20 Jun 2024 13:53:10 +0200 Subject: [PATCH 21/27] changed lots of thing bc pub upgrade --- refilc/lib/api/client.dart | 2 +- refilc/lib/api/providers/status_provider.dart | 6 ++-- refilc/pubspec.yaml | 6 ++-- .../lib/screens/login/login_screen.dart | 4 +-- refilc_desktop_ui/pubspec.yaml | 6 ++-- refilc_kreta_api/pubspec.yaml | 4 +-- refilc_mobile_ui/lib/common/filter_bar.dart | 8 +++-- refilc_mobile_ui/lib/pages/grades/graph.dart | 29 +++++++++---------- refilc_mobile_ui/pubspec.yaml | 14 ++++----- refilc_plus | 2 +- 10 files changed, 41 insertions(+), 40 deletions(-) diff --git a/refilc/lib/api/client.dart b/refilc/lib/api/client.dart index 83fe55a4..0387e843 100644 --- a/refilc/lib/api/client.dart +++ b/refilc/lib/api/client.dart @@ -55,7 +55,7 @@ class FilcAPI { static const stripeSheet = "$payment/stripe-sheet"; static Future checkConnectivity() async => - (await Connectivity().checkConnectivity()) != ConnectivityResult.none; + (await Connectivity().checkConnectivity())[0] != ConnectivityResult.none; static Future?> getSchools() async { try { diff --git a/refilc/lib/api/providers/status_provider.dart b/refilc/lib/api/providers/status_provider.dart index 9004cb2a..458c1456 100644 --- a/refilc/lib/api/providers/status_provider.dart +++ b/refilc/lib/api/providers/status_provider.dart @@ -15,7 +15,7 @@ class StatusProvider extends ChangeNotifier { StatusProvider() { _handleNetworkChanges(); _handleDNSFailure(); - Connectivity().checkConnectivity().then((value) => _networkType = value); + Connectivity().checkConnectivity().then((value) => _networkType = value[0]); } Status? getStatus() => _stack.isNotEmpty ? _stack[0] : null; @@ -24,8 +24,8 @@ class StatusProvider extends ChangeNotifier { void _handleNetworkChanges() { Connectivity().onConnectivityChanged.listen((event) { - _networkType = event; - if (event == ConnectivityResult.none) { + _networkType = event[0]; + if (event[0] == ConnectivityResult.none) { if (!_stack.contains(Status.network)) { _stack.remove(Status.apiError); _stack.insert(0, Status.network); diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index 58803aed..81005fc1 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -40,17 +40,17 @@ dependencies: path_provider: ^2.0.2 permission_handler: ^11.0.1 share_plus: ^9.0.0 - connectivity_plus: ^5.0.2 + connectivity_plus: ^6.0.3 flutter_displaymode: ^0.6.0 quick_actions: ^1.0.1 animated_list_plus: ^0.5.0 dynamic_color: ^1.2.2 material_color_utilities: ^0.8.0 crypto: ^3.0.2 - elegant_notification: ^1.6.1 + elegant_notification: ^2.2.0 flutter_feather_icons: ^2.0.0+1 live_activities: ^1.7.4 - animated_flip_counter: ^0.2.5 + animated_flip_counter: ^0.3.4 lottie: ^3.1.0 rive: ^0.12.4 animated_background: ^2.0.0 diff --git a/refilc_desktop_ui/lib/screens/login/login_screen.dart b/refilc_desktop_ui/lib/screens/login/login_screen.dart index 3541be39..892db46d 100644 --- a/refilc_desktop_ui/lib/screens/login/login_screen.dart +++ b/refilc_desktop_ui/lib/screens/login/login_screen.dart @@ -68,7 +68,7 @@ class LoginScreenState extends State { overflow: TextOverflow.ellipsis, style: const TextStyle(color: Colors.red), ), - onActionPressed: () {}, + // onActionPressed: () {}, onCloseButtonPressed: () {}, onDismiss: () {}, onProgressFinished: () {}, @@ -340,7 +340,7 @@ class LoginScreenState extends State { overflow: TextOverflow.ellipsis, style: const TextStyle(color: Colors.black), ), - onActionPressed: () {}, + // onActionPressed: () {}, onCloseButtonPressed: () {}, onDismiss: () {}, onProgressFinished: () {}, diff --git a/refilc_desktop_ui/pubspec.yaml b/refilc_desktop_ui/pubspec.yaml index 5c166a4b..06d3bc06 100644 --- a/refilc_desktop_ui/pubspec.yaml +++ b/refilc_desktop_ui/pubspec.yaml @@ -26,12 +26,12 @@ dependencies: provider: ^6.1.1 url_launcher: ^6.2.5 flutter_linkify: ^6.0.0 - flutter_markdown: ^0.6.20+1 + flutter_markdown: ^0.7.2+1 animations: ^2.0.11 confetti: ^0.7.0 auto_size_text: ^3.0.0 flutter_acrylic: ^1.1.3 - elegant_notification: ^1.13.0 + elegant_notification: ^2.2.0 flutter_staggered_grid_view: ^0.7.0 i18n_extension: ^12.0.1 flutter_expandable_fab: ^2.0.0 @@ -41,7 +41,7 @@ dependencies: flutter_custom_tabs: ^2.0.0+1 dev_dependencies: - flutter_lints: ^3.0.1 + flutter_lints: ^4.0.0 flutter: uses-material-design: true diff --git a/refilc_kreta_api/pubspec.yaml b/refilc_kreta_api/pubspec.yaml index d413df2b..fd935aac 100644 --- a/refilc_kreta_api/pubspec.yaml +++ b/refilc_kreta_api/pubspec.yaml @@ -11,10 +11,10 @@ dependencies: path: ../refilc/ http: ^1.1.2 provider: ^6.1.1 - file_picker: ^6.1.1 + file_picker: ^8.0.5 intl: ^0.19.0 i18n_extension: ^12.0.1 uuid: ^4.3.3 dev_dependencies: - flutter_lints: ^3.0.1 + flutter_lints: ^4.0.0 diff --git a/refilc_mobile_ui/lib/common/filter_bar.dart b/refilc_mobile_ui/lib/common/filter_bar.dart index cac92941..e4e1f046 100644 --- a/refilc_mobile_ui/lib/common/filter_bar.dart +++ b/refilc_mobile_ui/lib/common/filter_bar.dart @@ -49,7 +49,7 @@ class _FilterBarState extends State { controller: widget.controller, isScrollable: widget.scrollable, physics: const BouncingScrollPhysics(), - // Label + // label labelStyle: Theme.of(context).textTheme.titleMedium!.copyWith( fontWeight: FontWeight.w600, fontSize: 15.0, @@ -57,7 +57,7 @@ class _FilterBarState extends State { labelPadding: const EdgeInsets.symmetric(horizontal: 12, vertical: 3), labelColor: Theme.of(context).colorScheme.secondary, unselectedLabelColor: AppColors.of(context).text.withOpacity(0.65), - // Indicator + // indicator indicatorSize: TabBarIndicatorSize.tab, indicatorPadding: const EdgeInsets.symmetric(vertical: 8.0), indicator: BoxDecoration( @@ -65,7 +65,9 @@ class _FilterBarState extends State { borderRadius: BorderRadius.circular(45.0), ), overlayColor: WidgetStateProperty.all(const Color(0x00000000)), - // Tabs + // underline (bottom border) + dividerColor: Colors.transparent, + // tabs padding: EdgeInsets.zero, tabs: widget.censored ? censoredItemsWidth diff --git a/refilc_mobile_ui/lib/pages/grades/graph.dart b/refilc_mobile_ui/lib/pages/grades/graph.dart index 15d8a4df..c8c382b5 100644 --- a/refilc_mobile_ui/lib/pages/grades/graph.dart +++ b/refilc_mobile_ui/lib/pages/grades/graph.dart @@ -217,7 +217,7 @@ class GradeGraphState extends State { height: 158, child: subjectSpots.length > 1 ? Padding( - padding: const EdgeInsets.only(top: 8.0, right: 8.0), + padding: const EdgeInsets.only(top: 6.0, right: 0.0), child: LineChart( LineChartData( extraLinesData: ExtraLinesData( @@ -347,7 +347,7 @@ class GradeGraphState extends State { bottomTitles: AxisTitles( sideTitles: SideTitles( showTitles: true, - reservedSize: 24, + reservedSize: 25, getTitlesWidget: (value, meta) { if (value == meta.max || value == meta.min) { return Container(); @@ -362,17 +362,14 @@ class GradeGraphState extends State { title = title.substring(0, min(title.length, 4)); - return Padding( - padding: const EdgeInsets.all(12.0), - child: Text( - title.toUpperCase(), - style: TextStyle( - color: AppColors.of(context) - .text - .withOpacity(.75), - fontWeight: FontWeight.bold, - fontSize: 14.0, - ), + return Text( + title.toUpperCase(), + style: TextStyle( + color: AppColors.of(context) + .text + .withOpacity(.75), + fontWeight: FontWeight.bold, + fontSize: 14.0, ), ); }, @@ -425,14 +422,16 @@ class GradeGraphState extends State { sideTitles: SideTitles( showTitles: true, interval: 1.0, + reservedSize: 26.0, getTitlesWidget: (value, meta) => Padding( - padding: const EdgeInsets.all(16.0), + padding: const EdgeInsets.only( + left: 6.0, right: 10.0), child: Text( value.toInt().toString(), style: TextStyle( color: AppColors.of(context).text, fontWeight: FontWeight.bold, - fontSize: 18.0, + fontSize: 16.0, ), ), ), diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index 36a4fba2..3988e9fc 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -24,15 +24,15 @@ dependencies: fl_chart: ^0.68.0 url_launcher: ^6.2.5 flutter_material_color_picker: ^1.1.0+2 - photo_view: ^0.14.0 + photo_view: ^0.15.0 flutter_linkify: ^6.0.0 flutter_custom_tabs: ^2.0.0+1 - flutter_markdown: ^0.6.23 + flutter_markdown: ^0.7.2+1 animations: ^2.0.11 animated_list_plus: ^0.5.0 confetti: ^0.7.0 live_activities: ^1.9.1+1 - animated_flip_counter: ^0.2.5 + animated_flip_counter: ^0.3.4 lottie: ^3.1.0 rive: ^0.12.4 animated_background: ^2.0.0 @@ -48,12 +48,12 @@ dependencies: rounded_expansion_tile: git: url: https://github.com/kimaah/rounded_expansion_tile.git - go_router: ^13.2.0 + go_router: ^14.2.0 flutter_expandable_fab: ^2.0.0 intl: ^0.19.0 i18n_extension: ^12.0.1 auto_size_text: ^3.0.0 - connectivity_plus: ^5.0.2 + connectivity_plus: ^6.0.3 collection: ^1.18.0 share_plus: ^9.0.0 image_picker: ^1.0.7 @@ -72,10 +72,10 @@ dependencies: carousel_slider: ^4.2.1 flutter_portal: ^1.1.4 webview_flutter: ^4.8.0 - file_picker: ^6.2.1 + file_picker: ^8.0.5 dev_dependencies: - flutter_lints: ^3.0.1 + flutter_lints: ^4.0.0 flutter: uses-material-design: true diff --git a/refilc_plus b/refilc_plus index 8af545b5..515ad02f 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 8af545b5a39bfbfc25c5f2a383dcdfada018cd75 +Subproject commit 515ad02f5ac9d9e35983b1652506238fd2839c4c From 17faa545e544824154f65383c115d2394448c4d1 Mon Sep 17 00:00:00 2001 From: Kima Date: Thu, 20 Jun 2024 14:09:26 +0200 Subject: [PATCH 22/27] changed some repos to custom forks because android sucks --- refilc/pubspec.yaml | 10 ++++++++-- refilc_mobile_ui/pubspec.yaml | 5 ++++- refilc_plus | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index 81005fc1..0956e88e 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -55,11 +55,17 @@ dependencies: rive: ^0.12.4 animated_background: ^2.0.0 dropdown_button2: ^2.3.9 - home_widget: ^0.6.0 + home_widget: + git: + url: https://github.com/refilc/home_widget.git + ref: flutter-beta flutter_expandable_fab: ^2.0.0 uni_links: ^0.5.1 url_launcher: ^6.1.6 - workmanager: ^0.5.1 + workmanager: + git: + url: https://github.com/refilc/flutter_workmanager.git + ref: v0.5.1 flutter_svg: ^2.0.10+1 image_picker: ^1.0.7 animations: ^2.0.1 diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index 3988e9fc..6a74085a 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -36,7 +36,10 @@ dependencies: lottie: ^3.1.0 rive: ^0.12.4 animated_background: ^2.0.0 - home_widget: ^0.6.0 + home_widget: + git: + url: https://github.com/refilc/home_widget.git + ref: flutter-beta dropdown_button2: ^2.3.9 flutter_svg: ^2.0.10+1 background_fetch: ^1.2.2 diff --git a/refilc_plus b/refilc_plus index 515ad02f..3207cdcf 160000 --- a/refilc_plus +++ b/refilc_plus @@ -1 +1 @@ -Subproject commit 515ad02f5ac9d9e35983b1652506238fd2839c4c +Subproject commit 3207cdcf6d7e6cd0d2f17851b3597597c14ea4ff From 4254a7998a84bde3ac23474a597c0a55288d6c38 Mon Sep 17 00:00:00 2001 From: Kima Date: Thu, 20 Jun 2024 14:17:31 +0200 Subject: [PATCH 23/27] build number change --- refilc/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index 0956e88e..a77eb05e 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -3,7 +3,7 @@ description: "Egy nem hivatalos e-KRÉTA kliens, diákoktól diákoknak." homepage: https://refilc.hu publish_to: "none" -version: 5.0.2+267 +version: 5.0.2+268 environment: sdk: ">=3.3.2 <=3.4.3" From df75fadfea041fcf6dece5b9de56e573460168f9 Mon Sep 17 00:00:00 2001 From: Kima Date: Fri, 21 Jun 2024 21:16:24 +0200 Subject: [PATCH 24/27] added shake --- refilc/android/app/build.gradle | 2 +- refilc/lib/main.dart | 7 ++++++- refilc/pubspec.yaml | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/refilc/android/app/build.gradle b/refilc/android/app/build.gradle index 42f71d78..4437dee2 100644 --- a/refilc/android/app/build.gradle +++ b/refilc/android/app/build.gradle @@ -58,7 +58,7 @@ android { defaultConfig { applicationId "hu.refilc.naplo" - minSdkVersion 21 + minSdkVersion 24 targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/refilc/lib/main.dart b/refilc/lib/main.dart index 7b58d0f5..48e2c01c 100644 --- a/refilc/lib/main.dart +++ b/refilc/lib/main.dart @@ -15,6 +15,7 @@ import 'package:refilc/utils/service_locator.dart'; import 'package:refilc_mobile_ui/screens/error_screen.dart'; import 'package:refilc_mobile_ui/screens/error_report_screen.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:shake_flutter/shake_flutter.dart'; import 'helpers/live_activity_helper.dart'; @@ -38,6 +39,9 @@ void main() async { BackgroundFetch.registerHeadlessTask(backgroundHeadlessTask); + // shakebugs initialization + Shake.start('Y44AwzfY6091xO2Nr0w59RHSpNxJhhiSFGs4enmoJwelN82ZRzTLE5X'); + // pre-cache required icons const todaySvg = SvgAssetLoader('assets/svg/menu_icons/today_selected.svg'); const gradesSvg = SvgAssetLoader('assets/svg/menu_icons/grades_selected.svg'); @@ -244,7 +248,8 @@ void backgroundHeadlessTask(HeadlessTask task) { LiveActivityHelper().backgroundJob(); } else { NotificationsHelper().backgroundJob(); - } BackgroundFetch.finish(task.taskId); + } + BackgroundFetch.finish(task.taskId); } Future initAdditionalBackgroundFetch() async { diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index a77eb05e..dccc0fd5 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -88,6 +88,7 @@ dependencies: xml: ^6.5.0 carousel_slider: ^4.2.1 flutter_portal: ^1.1.4 + shake_flutter: ^17.0.0 dev_dependencies: flutter_lints: ^4.0.0 From 3ef58974c9c3d4173d708bc15f7619ee3324fe92 Mon Sep 17 00:00:00 2001 From: Kima Date: Fri, 21 Jun 2024 21:47:15 +0200 Subject: [PATCH 25/27] added shake to current error report screen as well --- refilc/lib/main.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/refilc/lib/main.dart b/refilc/lib/main.dart index 48e2c01c..2d939bc4 100644 --- a/refilc/lib/main.dart +++ b/refilc/lib/main.dart @@ -15,6 +15,7 @@ import 'package:refilc/utils/service_locator.dart'; import 'package:refilc_mobile_ui/screens/error_screen.dart'; import 'package:refilc_mobile_ui/screens/error_report_screen.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:shake_flutter/models/shake_report_configuration.dart'; import 'package:shake_flutter/shake_flutter.dart'; import 'helpers/live_activity_helper.dart'; @@ -40,6 +41,7 @@ void main() async { BackgroundFetch.registerHeadlessTask(backgroundHeadlessTask); // shakebugs initialization + // Shake.setInvokeShakeOnScreenshot(true); Shake.start('Y44AwzfY6091xO2Nr0w59RHSpNxJhhiSFGs4enmoJwelN82ZRzTLE5X'); // pre-cache required icons @@ -174,6 +176,18 @@ Widget errorBuilder(FlutterErrorDetails details) { Navigator.of(context, rootNavigator: true) .push(MaterialPageRoute(builder: (context) { if (kReleaseMode) { + // silent report to shakebugs + ShakeReportConfiguration configuration = ShakeReportConfiguration(); + configuration.blackBoxData = true; + configuration.activityHistoryData = true; + configuration.screenshot = true; + configuration.video = false; + Shake.silentReport( + configuration: configuration, + description: + 'Silent Report #${DateTime.now().year}${DateTime.now().month}${DateTime.now().day}', + ); + // show error report screen return ErrorReportScreen(details); } else { return ErrorScreen(details); From 0d509c90b1162a625422a4ad19a5881e0c328872 Mon Sep 17 00:00:00 2001 From: Kima Date: Fri, 21 Jun 2024 22:30:17 +0200 Subject: [PATCH 26/27] finished everything shake --- refilc/lib/main.dart | 18 ++++++++++++++++ refilc/lib/theme/observer.dart | 13 +++++++++++- .../lib/screens/settings/settings_screen.dart | 21 ++++++++++++++++++- .../settings/settings_screen.i18n.dart | 3 +++ refilc_mobile_ui/pubspec.yaml | 1 + 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/refilc/lib/main.dart b/refilc/lib/main.dart index 2d939bc4..5b0a3f4d 100644 --- a/refilc/lib/main.dart +++ b/refilc/lib/main.dart @@ -40,6 +40,24 @@ void main() async { BackgroundFetch.registerHeadlessTask(backgroundHeadlessTask); + // setting up things for shakebugs + // List pickerItems = [ + // ShakePickerItem('Bug', 'Hiba', tag: 'bug'), + // ShakePickerItem('Suggestion', 'Fejlesztési javaslat', tag: 'suggestion'), + // ShakePickerItem('Question', 'Kérdés', tag: 'question') + // ]; + // ShakePicker picker = + // ShakePicker('Feedback type', 'Visszajelzés típusa', pickerItems); + // ShakeTitle title = ShakeTitle('Title', 'Leírás', required: true); + + // ShakeInspectButton inspect = ShakeInspectButton(); + // ShakeAttachments attachments = ShakeAttachments(); + + // List components = [picker, title, inspect, attachments]; + // ShakeForm form = ShakeForm(components); + + // Shake.setShakeForm(form); + // shakebugs initialization // Shake.setInvokeShakeOnScreenshot(true); Shake.start('Y44AwzfY6091xO2Nr0w59RHSpNxJhhiSFGs4enmoJwelN82ZRzTLE5X'); diff --git a/refilc/lib/theme/observer.dart b/refilc/lib/theme/observer.dart index c8824a6c..08c075e3 100644 --- a/refilc/lib/theme/observer.dart +++ b/refilc/lib/theme/observer.dart @@ -4,6 +4,8 @@ import 'package:flutter/material.dart'; import 'package:home_widget/home_widget.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; +import 'package:shake_flutter/models/shake_theme.dart'; +import 'package:shake_flutter/shake_flutter.dart'; Future updateWidget() async { try { @@ -22,7 +24,9 @@ class ThemeModeObserver extends ChangeNotifier { ThemeMode get themeMode => _themeMode; bool get updateNavbarColor => _updateNavbarColor; - ThemeModeObserver({ThemeMode initialTheme = ThemeMode.system, bool updateNavbarColor = true}) + ThemeModeObserver( + {ThemeMode initialTheme = ThemeMode.system, + bool updateNavbarColor = true}) : _themeMode = initialTheme, _updateNavbarColor = updateNavbarColor; @@ -31,5 +35,12 @@ class ThemeModeObserver extends ChangeNotifier { _updateNavbarColor = updateNavbarColor; if (Platform.isAndroid) updateWidget(); notifyListeners(); + + // change shake theme as well + ShakeTheme darkTheme = ShakeTheme(); + darkTheme.accentColor = "#FFFFFF"; + ShakeTheme lightTheme = ShakeTheme(); + lightTheme.accentColor = "#000000"; + Shake.setShakeTheme(mode == ThemeMode.dark ? darkTheme : lightTheme); } } diff --git a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart index fc7b19a7..b2c8f6e4 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_screen.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_screen.dart @@ -54,6 +54,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_custom_tabs/flutter_custom_tabs.dart' as tabs; import 'package:flutter_feather_icons/flutter_feather_icons.dart'; import 'package:provider/provider.dart'; +import 'package:shake_flutter/enums/shake_screen.dart'; +import 'package:shake_flutter/shake_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; import 'debug/subject_icon_gallery.dart'; import 'settings_screen.i18n.dart'; @@ -1010,7 +1012,7 @@ class SettingsScreenState extends State shape: const RoundedRectangleBorder( borderRadius: BorderRadius.vertical( top: Radius.circular(4.0), - bottom: Radius.circular(12.0), + bottom: Radius.circular(4.0), ), ), secondary: Icon( @@ -1052,6 +1054,23 @@ class SettingsScreenState extends State ), ), ), + PanelButton( + leading: Icon( + Icons.feedback_outlined, + size: 22.0, + color: AppColors.of(context).text.withOpacity(0.95), + ), + title: Text("feedback".i18n), + onPressed: () => { + Shake.setScreenshotIncluded(false), + Shake.show(ShakeScreen.newTicket), + Shake.setScreenshotIncluded(true), + }, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(4.0), + bottom: Radius.circular(12.0), + ), + ), ], ), diff --git a/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart b/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart index 3351848e..855cc431 100644 --- a/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart +++ b/refilc_mobile_ui/lib/screens/settings/settings_screen.i18n.dart @@ -128,6 +128,7 @@ extension SettingsLocalization on String { "export_method": "Export Method", "grade_exporting": "Grade Exporting", "custom": "Custom", + "feedback": "Feedback", }, "hu_hu": { "heads_up": "Figyelem!", @@ -254,6 +255,7 @@ extension SettingsLocalization on String { "export_method": "Exportálási mód", "grade_exporting": "Jegy exportálás", "custom": "Egyedi", + "feedback": "Visszajelzés", }, "de_de": { "heads_up": "Achtung!", @@ -380,6 +382,7 @@ extension SettingsLocalization on String { "export_method": "Exportmethode", "grade_exporting": "Noten exportieren", "custom": "Benutzerdefiniert", + "feedback": "Feedback", }, }; diff --git a/refilc_mobile_ui/pubspec.yaml b/refilc_mobile_ui/pubspec.yaml index 6a74085a..53f26298 100644 --- a/refilc_mobile_ui/pubspec.yaml +++ b/refilc_mobile_ui/pubspec.yaml @@ -76,6 +76,7 @@ dependencies: flutter_portal: ^1.1.4 webview_flutter: ^4.8.0 file_picker: ^8.0.5 + shake_flutter: ^17.0.0 dev_dependencies: flutter_lints: ^4.0.0 From 4128018a59e184444897d376ccf8f196a838297a Mon Sep 17 00:00:00 2001 From: Kima Date: Fri, 21 Jun 2024 22:39:53 +0200 Subject: [PATCH 27/27] blah blah blah --- refilc/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/refilc/pubspec.yaml b/refilc/pubspec.yaml index dccc0fd5..895c0a95 100644 --- a/refilc/pubspec.yaml +++ b/refilc/pubspec.yaml @@ -3,7 +3,7 @@ description: "Egy nem hivatalos e-KRÉTA kliens, diákoktól diákoknak." homepage: https://refilc.hu publish_to: "none" -version: 5.0.2+268 +version: 5.0.3+269 environment: sdk: ">=3.3.2 <=3.4.3"