From 9845a35c6e121814956d1bb64598a6d3d4a1c06d Mon Sep 17 00:00:00 2001 From: Pearoo Date: Thu, 28 Sep 2023 18:17:24 +0200 Subject: [PATCH 01/19] Fix english absence error + comment bugreports --- filcnaplo/lib/helpers/notification_helper.dart | 4 ++-- filcnaplo_desktop_ui/lib/pages/grades/grades_page.dart | 4 ++-- .../lib/common/widgets/absence/absence_view.dart | 2 +- .../lib/common/widgets/lesson/changed_lesson_tile.dart | 2 +- .../lib/pages/absences/absence_subject_view.dart | 2 +- .../lib/pages/absences/absences_page.i18n.dart | 3 +++ filcnaplo_premium/lib/ui/mobile/settings/theme.dart | 2 +- 7 files changed, 11 insertions(+), 8 deletions(-) diff --git a/filcnaplo/lib/helpers/notification_helper.dart b/filcnaplo/lib/helpers/notification_helper.dart index fd70e10..6f6f9a4 100644 --- a/filcnaplo/lib/helpers/notification_helper.dart +++ b/filcnaplo/lib/helpers/notification_helper.dart @@ -195,7 +195,7 @@ class NotificationsHelper { if (userProvider.getUsers().length == 1) { await flutterLocalNotificationsPlugin.show( absence.id.hashCode, - "title_absence".i18n, + "title_absence".i18n, // https://discord.com/channels/1111649116020285532/1153273625206591528 "body_absence".i18n.fill( [ DateFormat("yyyy-MM-dd").format(absence.date), @@ -210,7 +210,7 @@ class NotificationsHelper { } else { await flutterLocalNotificationsPlugin.show( absence.id.hashCode, - "title_absence".i18n, + "title_absence".i18n, // https://discord.com/channels/1111649116020285532/1153273625206591528 "body_absence_multiuser".i18n.fill( [ userProvider.displayName!, diff --git a/filcnaplo_desktop_ui/lib/pages/grades/grades_page.dart b/filcnaplo_desktop_ui/lib/pages/grades/grades_page.dart index 619756a..0a2099b 100644 --- a/filcnaplo_desktop_ui/lib/pages/grades/grades_page.dart +++ b/filcnaplo_desktop_ui/lib/pages/grades/grades_page.dart @@ -144,8 +144,8 @@ class _GradesPageState extends State { Expanded( child: StatisticsTile( outline: true, - title: AutoSizeText( - "classavg".i18n, + title: AutoSizeText( // https://discord.com/channels/1111649116020285532/1153397476578050130 + "classavg".i18n, textAlign: TextAlign.center, maxLines: 2, wrapWords: false, diff --git a/filcnaplo_mobile_ui/lib/common/widgets/absence/absence_view.dart b/filcnaplo_mobile_ui/lib/common/widgets/absence/absence_view.dart index 23ec169..1ffac65 100755 --- a/filcnaplo_mobile_ui/lib/common/widgets/absence/absence_view.dart +++ b/filcnaplo_mobile_ui/lib/common/widgets/absence/absence_view.dart @@ -127,7 +127,7 @@ class AbsenceView extends StatelessWidget { maxLines: 2, overflow: TextOverflow.ellipsis, ), - onPressed: () { + onPressed: () { // https://discord.com/channels/1111649116020285532/1149964760130002945 Navigator.of(context).pop(); if (outsideContext != null) { diff --git a/filcnaplo_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart b/filcnaplo_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart index 68540ab..7125d2b 100755 --- a/filcnaplo_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart +++ b/filcnaplo_mobile_ui/lib/common/widgets/lesson/changed_lesson_tile.dart @@ -57,7 +57,7 @@ class ChangedLessonTile extends StatelessWidget { ), ), title: Text( - lesson.substituteTeacher?.name != "" + lesson.substituteTeacher?.name != "" || lesson.substituteTeacher?.name != null ? "substituted".i18n : "cancelled".i18n, maxLines: 2, diff --git a/filcnaplo_mobile_ui/lib/pages/absences/absence_subject_view.dart b/filcnaplo_mobile_ui/lib/pages/absences/absence_subject_view.dart index dcf162f..dc184e7 100755 --- a/filcnaplo_mobile_ui/lib/pages/absences/absence_subject_view.dart +++ b/filcnaplo_mobile_ui/lib/pages/absences/absence_subject_view.dart @@ -40,7 +40,7 @@ class AbsenceSubjectView extends StatelessWidget { TimetablePage.jump(context, lesson: lesson); } else { ScaffoldMessenger.of(context).showSnackBar(CustomSnackBar( - content: Text("Cannot find lesson".i18n, + content: Text("lesson_not_found".i18n, style: const TextStyle(color: Colors.white)), backgroundColor: AppColors.of(context).red, context: context, diff --git a/filcnaplo_mobile_ui/lib/pages/absences/absences_page.i18n.dart b/filcnaplo_mobile_ui/lib/pages/absences/absences_page.i18n.dart index 91b7621..61c971a 100755 --- a/filcnaplo_mobile_ui/lib/pages/absences/absences_page.i18n.dart +++ b/filcnaplo_mobile_ui/lib/pages/absences/absences_page.i18n.dart @@ -17,6 +17,7 @@ extension ScreensLocalization on String { "Subjects": "Subjects", "attention": "Attention!", "attention_body": "Percentage calculations are only an approximation so they may not be accurate.", + "lesson_not_found": "Cannot find lesson", }, "hu_hu": { "Absences": "Hiányzások", @@ -32,6 +33,7 @@ extension ScreensLocalization on String { "Subjects": "Tantárgyak", "attention": "Figyelem!", "attention_body": "A százalékos számítások csak közelítések, ezért előfordulhat, hogy nem pontosak.", + "lesson_not_found": "Nem található óra", }, "de_de": { "Absences": "Fehlen", @@ -47,6 +49,7 @@ extension ScreensLocalization on String { "Subjects": "Fächer", "attention": "Achtung!", "attention_body": "Prozentberechnungen sind nur eine Annäherung und können daher ungenau sein.", + "lesson_not_found": "Lektion kann nicht gefunden werden", }, }; diff --git a/filcnaplo_premium/lib/ui/mobile/settings/theme.dart b/filcnaplo_premium/lib/ui/mobile/settings/theme.dart index cbe4d40..1d2b3b1 100644 --- a/filcnaplo_premium/lib/ui/mobile/settings/theme.dart +++ b/filcnaplo_premium/lib/ui/mobile/settings/theme.dart @@ -329,7 +329,7 @@ class _PremiumCustomAccentColorSettingState width: double.infinity, decoration: BoxDecoration( borderRadius: BorderRadius.circular(24), - gradient: LinearGradient( + gradient: LinearGradient( // https://discord.com/channels/1111649116020285532/1153619667848548452 begin: Alignment.topCenter, end: Alignment.bottomCenter, stops: const [ From 2b7e14381256455839d7593f0d4a711b6a5fa255 Mon Sep 17 00:00:00 2001 From: SledDev <90392654+sleddev@users.noreply.github.com> Date: Thu, 28 Sep 2023 19:12:56 +0200 Subject: [PATCH 02/19] fixed fullscreen timetable italics --- .../lib/ui/mobile/timetable/fs_timetable.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/filcnaplo_premium/lib/ui/mobile/timetable/fs_timetable.dart b/filcnaplo_premium/lib/ui/mobile/timetable/fs_timetable.dart index a19f9ff..9d8aa6b 100644 --- a/filcnaplo_premium/lib/ui/mobile/timetable/fs_timetable.dart +++ b/filcnaplo_premium/lib/ui/mobile/timetable/fs_timetable.dart @@ -1,4 +1,5 @@ import 'package:filcnaplo/helpers/subject.dart'; +import 'package:filcnaplo/models/settings.dart'; import 'package:filcnaplo/theme/colors/colors.dart'; import 'package:filcnaplo_kreta_api/controllers/timetable_controller.dart'; import 'package:filcnaplo_mobile_ui/common/empty.dart'; @@ -9,6 +10,7 @@ import 'package:filcnaplo/utils/format.dart'; import 'dart:math' as math; import 'package:intl/intl.dart'; import 'package:i18n_extension/i18n_widget.dart'; +import 'package:provider/provider.dart'; class PremiumFSTimetable extends StatefulWidget { const PremiumFSTimetable({Key? key, required this.controller}) @@ -21,6 +23,8 @@ class PremiumFSTimetable extends StatefulWidget { } class _PremiumFSTimetableState extends State { + late SettingsProvider settings; + @override void initState() { super.initState(); @@ -37,6 +41,8 @@ class _PremiumFSTimetableState extends State { @override Widget build(BuildContext context) { + settings = Provider.of(context); + if (widget.controller.days == null || widget.controller.days!.isEmpty) { return const Center(child: Empty()); } @@ -174,7 +180,7 @@ class _PremiumFSTimetableState extends State { style: TextStyle( fontStyle: lessons[lessonIndex] .subject - .isRenamed + .isRenamed && settings.renamedSubjectsItalics ? FontStyle.italic : null, ), From 8451983163b00b56f7a1fbc57b64339c4fe2d2ab Mon Sep 17 00:00:00 2001 From: SledDev <90392654+sleddev@users.noreply.github.com> Date: Thu, 28 Sep 2023 19:41:43 +0200 Subject: [PATCH 03/19] find schools by instituteCode --- .../lib/screens/login/school_input/school_search.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/filcnaplo_mobile_ui/lib/screens/login/school_input/school_search.dart b/filcnaplo_mobile_ui/lib/screens/login/school_input/school_search.dart index 4cbfb30..bb82fb0 100755 --- a/filcnaplo_mobile_ui/lib/screens/login/school_input/school_search.dart +++ b/filcnaplo_mobile_ui/lib/screens/login/school_input/school_search.dart @@ -17,6 +17,8 @@ List searchSchools(List all, String pattern) { }); if (contains == pattern.split(" ").length) results.add(item); + + if (item.instituteCode.toLowerCase().specialChars().contains(pattern)) results.add(item); } results.sort((a, b) => a.name.compareTo(b.name)); From 493adaa5f25acaa4b6be0fe1e0afe0bd3ddf5c93 Mon Sep 17 00:00:00 2001 From: SledDev <90392654+sleddev@users.noreply.github.com> Date: Thu, 28 Sep 2023 20:15:09 +0200 Subject: [PATCH 04/19] fixed background color in theme preview --- filcnaplo_premium/lib/ui/mobile/settings/theme.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/filcnaplo_premium/lib/ui/mobile/settings/theme.dart b/filcnaplo_premium/lib/ui/mobile/settings/theme.dart index 1d2b3b1..c9ffb30 100644 --- a/filcnaplo_premium/lib/ui/mobile/settings/theme.dart +++ b/filcnaplo_premium/lib/ui/mobile/settings/theme.dart @@ -337,7 +337,8 @@ class _PremiumCustomAccentColorSettingState 0.75 ], colors: [ - Theme.of(context).colorScheme.background, + settings.customBackgroundColor + ?? Theme.of(context).colorScheme.background, isBackgroundDifferent ? HSVColor.fromColor(Theme.of(context) .colorScheme From 92b409455008b75575641bcff84389cbd52731ed Mon Sep 17 00:00:00 2001 From: ReinerRego Date: Wed, 4 Oct 2023 14:10:17 +0200 Subject: [PATCH 05/19] started fixing desktop ui --- .../src/main/res/layout/widget_timetable.xml | 2 +- .../login/school_input/school_input.dart | 122 ++++++++++++++++++ .../login/school_input/school_input_tile.dart | 65 ++++++++++ 3 files changed, 188 insertions(+), 1 deletion(-) create mode 100644 filcnaplo_desktop_ui/lib/screens/login/school_input/school_input.dart create mode 100644 filcnaplo_desktop_ui/lib/screens/login/school_input/school_input_tile.dart diff --git a/filcnaplo/android/app/src/main/res/layout/widget_timetable.xml b/filcnaplo/android/app/src/main/res/layout/widget_timetable.xml index 69b80b0..75496ef 100644 --- a/filcnaplo/android/app/src/main/res/layout/widget_timetable.xml +++ b/filcnaplo/android/app/src/main/res/layout/widget_timetable.xml @@ -136,7 +136,7 @@ android:layout_below="@id/iv_1" android:layout_marginHorizontal="15dp" android:fontFamily="@font/montserrat_medium" - android:text="A widget használatához, bejelentkezés szükséges." + android:text="A widget használatához bejelentkezés szükséges." android:textColor="@color/black" android:paddingTop="10dp" android:textSize="17sp" diff --git a/filcnaplo_desktop_ui/lib/screens/login/school_input/school_input.dart b/filcnaplo_desktop_ui/lib/screens/login/school_input/school_input.dart new file mode 100644 index 0000000..dfaa1d3 --- /dev/null +++ b/filcnaplo_desktop_ui/lib/screens/login/school_input/school_input.dart @@ -0,0 +1,122 @@ +import 'package:filcnaplo_mobile_ui/screens/login/login_input.dart'; +import 'package:filcnaplo_mobile_ui/screens/login/school_input/school_input_overlay.dart'; +import 'package:filcnaplo_desktop_ui/screens/login/school_input/school_input_tile.dart'; +import 'package:filcnaplo_mobile_ui/screens/login/school_input/school_search.dart'; +import 'package:flutter/material.dart'; +import 'package:filcnaplo_kreta_api/models/school.dart'; + +class SchoolInput extends StatefulWidget { + const SchoolInput({Key? key, required this.controller, required this.scroll}) + : super(key: key); + + final SchoolInputController controller; + final ScrollController scroll; + + @override + _SchoolInputState createState() => _SchoolInputState(); +} + +class _SchoolInputState extends State { + final _focusNode = FocusNode(); + final _layerLink = LayerLink(); + late SchoolInputOverlay overlay; + + @override + void initState() { + super.initState(); + + widget.controller.update = (fn) { + if (mounted) setState(fn); + }; + + overlay = SchoolInputOverlay(layerLink: _layerLink); + + // Show school list when focused + _focusNode.addListener(() { + if (_focusNode.hasFocus) { + WidgetsBinding.instance + .addPostFrameCallback((_) => overlay.createOverlayEntry(context)); + Future.delayed(const Duration(milliseconds: 100)).then((value) { + if (mounted && widget.scroll.hasClients) { + widget.scroll.animateTo(widget.scroll.offset + 500, + duration: const Duration(milliseconds: 500), + curve: Curves.ease); + } + }); + } else { + overlay.entry?.remove(); + } + }); + + // LoginInput TextField listener + widget.controller.textController.addListener(() { + String text = widget.controller.textController.text; + if (text.isEmpty) { + overlay.children = null; + return; + } + + List results = + searchSchools(widget.controller.schools ?? [], text); + setState(() { + overlay.children = results + .map((School e) => SchoolInputTile( + school: e, + onTap: () => _selectSchool(e), + )) + .toList(); + }); + Overlay.of(context).setState(() {}); + }); + } + + void _selectSchool(School school) { + FocusScope.of(context).requestFocus(FocusNode()); + + setState(() { + widget.controller.selectedSchool = school; + widget.controller.textController.text = school.name; + }); + } + + @override + Widget build(BuildContext context) { + return CompositedTransformTarget( + link: _layerLink, + child: widget.controller.schools == null + ? Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 10.0), + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.15), + borderRadius: BorderRadius.circular(12.0), + ), + child: const Center( + child: SizedBox( + height: 28.0, + width: 28.0, + child: CircularProgressIndicator( + color: Colors.white, + ), + ), + ), + ) + : LoginInput( + style: LoginInputStyle.school, + focusNode: _focusNode, + onClear: () { + widget.controller.selectedSchool = null; + FocusScope.of(context).requestFocus(_focusNode); + }, + controller: widget.controller.textController, + ), + ); + } +} + +class SchoolInputController { + final textController = TextEditingController(); + School? selectedSchool; + List? schools; + late void Function(void Function()) update; +} diff --git a/filcnaplo_desktop_ui/lib/screens/login/school_input/school_input_tile.dart b/filcnaplo_desktop_ui/lib/screens/login/school_input/school_input_tile.dart new file mode 100644 index 0000000..81455f1 --- /dev/null +++ b/filcnaplo_desktop_ui/lib/screens/login/school_input/school_input_tile.dart @@ -0,0 +1,65 @@ +import 'package:filcnaplo_kreta_api/models/school.dart'; +import 'package:flutter/material.dart'; + +class SchoolInputTile extends StatelessWidget { + const SchoolInputTile({Key? key, required this.school, this.onTap}) + : super(key: key); + + final School school; + final Function()? onTap; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(4.0), + child: GestureDetector( + onPanDown: (e) { + onTap!(); + }, + child: InkWell( + onTapDown: (e) {}, + borderRadius: BorderRadius.circular(6.0), + child: Padding( + padding: const EdgeInsets.all(6.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // School name + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Text( + school.name, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontWeight: FontWeight.w600), + ), + ), + Row( + children: [ + // School id + Expanded( + child: Text( + school.instituteCode, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + // School city + Expanded( + child: Text( + school.city, + textAlign: TextAlign.right, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ], + ), + ), + ), + ), + ); + } +} From 176608bfc5e5f8fa4c837733964c53d47b8ce0c9 Mon Sep 17 00:00:00 2001 From: Tihanyi Marcell Date: Wed, 4 Oct 2023 23:25:00 +0200 Subject: [PATCH 06/19] Xcode 15, iOS 17 - Bug Fix+Others --- filcnaplo/ios/Podfile | 5 +++- .../ios/Runner.xcodeproj/project.pbxproj | 24 +++++++++---------- filcnaplo/ios/Runner/Runner.entitlements | 2 +- filcnaplo/ios/livecard/lesson_model.swift | 2 +- filcnaplo/ios/livecard/livecard.entitlements | 2 +- .../lib/api/providers/live_card_provider.dart | 2 +- filcnaplo/lib/helpers/subject.dart | 6 +++++ .../settings/debug/subject_icon_gallery.dart | 3 +++ 8 files changed, 29 insertions(+), 17 deletions(-) diff --git a/filcnaplo/ios/Podfile b/filcnaplo/ios/Podfile index 4cbad0e..d016b37 100644 --- a/filcnaplo/ios/Podfile +++ b/filcnaplo/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -39,5 +39,8 @@ end post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) + target.build_configurations.each do |config| + config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' + end end end diff --git a/filcnaplo/ios/Runner.xcodeproj/project.pbxproj b/filcnaplo/ios/Runner.xcodeproj/project.pbxproj index 482cacc..cfe80be 100644 --- a/filcnaplo/ios/Runner.xcodeproj/project.pbxproj +++ b/filcnaplo/ios/Runner.xcodeproj/project.pbxproj @@ -478,7 +478,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 195; - DEVELOPMENT_TEAM = 48XS7JAZB7; + DEVELOPMENT_TEAM = 4DKAF249F3; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = reFilc; @@ -488,7 +488,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 3.6.0; - PRODUCT_BUNDLE_IDENTIFIER = com.refilctest.naplo; + PRODUCT_BUNDLE_IDENTIFIER = com.refilc2.naplo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -510,7 +510,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 48XS7JAZB7; + DEVELOPMENT_TEAM = 4DKAF249F3; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = livecard/Info.plist; @@ -526,7 +526,7 @@ MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.refilctest.naplo.livecardpro; + PRODUCT_BUNDLE_IDENTIFIER = com.refilc2.naplo.livecardpro; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; @@ -552,7 +552,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 48XS7JAZB7; + DEVELOPMENT_TEAM = 4DKAF249F3; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = livecard/Info.plist; @@ -567,7 +567,7 @@ ); MARKETING_VERSION = 1.0; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.refilctest.naplo.livecardpro; + PRODUCT_BUNDLE_IDENTIFIER = com.refilc2.naplo.livecardpro; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; @@ -592,7 +592,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 48XS7JAZB7; + DEVELOPMENT_TEAM = 4DKAF249F3; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = livecard/Info.plist; @@ -607,7 +607,7 @@ ); MARKETING_VERSION = 1.0; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.refilctest.naplo.livecardpro; + PRODUCT_BUNDLE_IDENTIFIER = com.refilc2.naplo.livecardpro; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; @@ -736,7 +736,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 195; - DEVELOPMENT_TEAM = 48XS7JAZB7; + DEVELOPMENT_TEAM = 4DKAF249F3; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = reFilc; @@ -746,7 +746,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 3.6.0; - PRODUCT_BUNDLE_IDENTIFIER = com.refilctest.naplo; + PRODUCT_BUNDLE_IDENTIFIER = com.refilc2.naplo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -764,7 +764,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 195; - DEVELOPMENT_TEAM = 48XS7JAZB7; + DEVELOPMENT_TEAM = 4DKAF249F3; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = reFilc; @@ -774,7 +774,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 3.6.0; - PRODUCT_BUNDLE_IDENTIFIER = com.refilctest.naplo; + PRODUCT_BUNDLE_IDENTIFIER = com.refilc2.naplo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/filcnaplo/ios/Runner/Runner.entitlements b/filcnaplo/ios/Runner/Runner.entitlements index 36e7279..8e1d462 100644 --- a/filcnaplo/ios/Runner/Runner.entitlements +++ b/filcnaplo/ios/Runner/Runner.entitlements @@ -6,7 +6,7 @@ development com.apple.security.application-groups - group.refilcnaplo.livecard + group.refilc2.livecard diff --git a/filcnaplo/ios/livecard/lesson_model.swift b/filcnaplo/ios/livecard/lesson_model.swift index 7ca85b0..3f9e2d0 100644 --- a/filcnaplo/ios/livecard/lesson_model.swift +++ b/filcnaplo/ios/livecard/lesson_model.swift @@ -14,7 +14,7 @@ class LessonData { var nextRoom: String init?() { - let sharedDefault = UserDefaults(suiteName: "group.refilc.livecard")! + let sharedDefault = UserDefaults(suiteName: "group.refilc2.livecard")! self.color = sharedDefault.string(forKey: "color")! self.icon = sharedDefault.string(forKey: "icon")! diff --git a/filcnaplo/ios/livecard/livecard.entitlements b/filcnaplo/ios/livecard/livecard.entitlements index 36e7279..8e1d462 100644 --- a/filcnaplo/ios/livecard/livecard.entitlements +++ b/filcnaplo/ios/livecard/livecard.entitlements @@ -6,7 +6,7 @@ development com.apple.security.application-groups - group.refilcnaplo.livecard + group.refilc2.livecard diff --git a/filcnaplo/lib/api/providers/live_card_provider.dart b/filcnaplo/lib/api/providers/live_card_provider.dart index 7f126d4..7f7a563 100644 --- a/filcnaplo/lib/api/providers/live_card_provider.dart +++ b/filcnaplo/lib/api/providers/live_card_provider.dart @@ -55,7 +55,7 @@ class LiveCardProvider extends ChangeNotifier { } if (value) { - _liveActivitiesPlugin.init(appGroupId: "group.refilc.livecard"); + _liveActivitiesPlugin.init(appGroupId: "group.refilc2.livecard"); _liveActivitiesPlugin.getAllActivitiesIds().then((value) { _latestActivityId = value.isNotEmpty ? value.first : null; diff --git a/filcnaplo/lib/helpers/subject.dart b/filcnaplo/lib/helpers/subject.dart index 2880d17..3cdb746 100644 --- a/filcnaplo/lib/helpers/subject.dart +++ b/filcnaplo/lib/helpers/subject.dart @@ -106,6 +106,12 @@ class SubjectIcon { return SubjectIconData(data: createIcon(cupertino: CupertinoIcons.globe, material: Icons.translate_outlined), name: "globe"); } else if (RegExp("linux").hasMatch(name)) { return SubjectIconData(data: createIcon(material: FilcIcons.linux, cupertino: FilcIcons.linux)); + } else if (RegExp("adatbazis").hasMatch(name)) { + return SubjectIconData(data: createIcon(cupertino: CupertinoIcons.table_badge_more, material: Icons.table_chart), name: "table.badge.more"); + } else if (RegExp("asztali alkalmazasok").hasMatch(name)) { + return SubjectIconData(data: createIcon(cupertino: CupertinoIcons.macwindow, material: Icons.desktop_windows_outlined), name: "macwindow"); + } else if (RegExp("projekt").hasMatch(name)) { + return SubjectIconData(data: createIcon(cupertino: CupertinoIcons.person_3_fill, material: Icons.groups_3), name: "person.3.fill"); } return SubjectIconData(); diff --git a/filcnaplo_mobile_ui/lib/screens/settings/debug/subject_icon_gallery.dart b/filcnaplo_mobile_ui/lib/screens/settings/debug/subject_icon_gallery.dart index d94bf84..e8ed7fc 100755 --- a/filcnaplo_mobile_ui/lib/screens/settings/debug/subject_icon_gallery.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/debug/subject_icon_gallery.dart @@ -51,6 +51,9 @@ class SubjectIconGallery extends StatelessWidget { SubjectIconItem("Magatartás"), SubjectIconItem("Angol nyelv"), SubjectIconItem("Linux"), + SubjectIconItem("Adatbázis"), + SubjectIconItem("Asztali alkalmazások"), + SubjectIconItem("Projekt"), ], ), ); From 41991b3b667bc495a2c490dabb82d95c53d9400f Mon Sep 17 00:00:00 2001 From: Kima Date: Thu, 5 Oct 2023 21:30:24 +0200 Subject: [PATCH 07/19] change log message bc livecard is shit but idk why --- filcnaplo/lib/api/providers/live_card_provider.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/filcnaplo/lib/api/providers/live_card_provider.dart b/filcnaplo/lib/api/providers/live_card_provider.dart index 7f7a563..8f5a847 100644 --- a/filcnaplo/lib/api/providers/live_card_provider.dart +++ b/filcnaplo/lib/api/providers/live_card_provider.dart @@ -51,7 +51,7 @@ class LiveCardProvider extends ChangeNotifier { _liveActivitiesPlugin.areActivitiesEnabled().then((value) { // Console log if (kDebugMode) { - print("Live card enabled: $value"); + print("iOS LiveActivity enabled: $value"); } if (value) { @@ -196,7 +196,7 @@ class LiveCardProvider extends ChangeNotifier { } } catch (e) { if (kDebugMode) { - print('ERROR: Unable to create or update iOS LiveCard!'); + print('ERROR: Unable to create or update iOS LiveActivity!'); } } } From f39ac80770c437c81203b2aa3cb78f5e4ec7aebb Mon Sep 17 00:00:00 2001 From: Kima Date: Thu, 5 Oct 2023 21:54:57 +0200 Subject: [PATCH 08/19] fixed app bricking with welcome message thing --- .../lib/ui/mobile/settings/welcome_message.dart | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/filcnaplo_premium/lib/ui/mobile/settings/welcome_message.dart b/filcnaplo_premium/lib/ui/mobile/settings/welcome_message.dart index 9bc7575..456510d 100644 --- a/filcnaplo_premium/lib/ui/mobile/settings/welcome_message.dart +++ b/filcnaplo_premium/lib/ui/mobile/settings/welcome_message.dart @@ -126,8 +126,14 @@ class _WelcomeMessageEditorState extends State { // } var finalText = _welcomeMsg.text .trim() - .replaceAll('%s', '') - .replaceFirst('%name%', '%s'); + .replaceFirst('%name%', '\$s') + .replaceFirst('%user%', '\$s') + .replaceFirst('%username%', '\$s') + .replaceFirst('%me%', '\$s') + .replaceFirst('%profile%', '\$s') + .replaceAll('%', '') + .replaceFirst('\$s', '%s'); + // .replaceAll('\$s', 's'); widget.settingsProvider .update(welcomeMessage: finalText, store: true); From 9d20d088389250d8fbdd1f0dd6035715dc961629 Mon Sep 17 00:00:00 2001 From: Kima Date: Sat, 7 Oct 2023 19:41:33 +0200 Subject: [PATCH 09/19] fixed goal planner done popup --- filcnaplo_premium/lib/providers/goal_provider.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/filcnaplo_premium/lib/providers/goal_provider.dart b/filcnaplo_premium/lib/providers/goal_provider.dart index 86b981d..18f3244 100644 --- a/filcnaplo_premium/lib/providers/goal_provider.dart +++ b/filcnaplo_premium/lib/providers/goal_provider.dart @@ -22,7 +22,7 @@ class GoalProvider extends ChangeNotifier { Future fetchDone({required GradeProvider gradeProvider}) async { var goalAvgs = await _db.userQuery.subjectGoalAverages(userId: _user.id!); - var beforeAvgs = await _db.userQuery.subjectGoalAverages(userId: _user.id!); + var beforeAvgs = await _db.userQuery.subjectGoalBefores(userId: _user.id!); List subjects = gradeProvider.grades .map((e) => e.subject) From b6d4ac6168253266e06696fc3a9ec74ab9d9db7b Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 11:33:09 +0200 Subject: [PATCH 10/19] maybe fixed error shit --- filcnaplo/lib/api/providers/status_provider.dart | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/filcnaplo/lib/api/providers/status_provider.dart b/filcnaplo/lib/api/providers/status_provider.dart index a556a40..2183e52 100644 --- a/filcnaplo/lib/api/providers/status_provider.dart +++ b/filcnaplo/lib/api/providers/status_provider.dart @@ -79,11 +79,12 @@ class StatusProvider extends ChangeNotifier { } } - if (_stack.contains(Status.network)) return; if (res.body == "invalid_grant" || res.body.replaceAll(' ', '') == '' || - res.statusCode == 400) { - if (!_stack.contains(Status.apiError)) { + (res.statusCode == 400 && + res.request?.url.path == 'ellenorzo/V3/Sajat/TanuloAdatlap')) { + if (!_stack.contains(Status.apiError) && + !_stack.contains(Status.network)) { _stack.insert(0, Status.apiError); notifyListeners(); } From dbb6125ab5c4ed1c68bc616d196f063334f07f2e Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 11:42:27 +0200 Subject: [PATCH 11/19] fixed live card not showing on android --- filcnaplo/lib/api/providers/live_card_provider.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/filcnaplo/lib/api/providers/live_card_provider.dart b/filcnaplo/lib/api/providers/live_card_provider.dart index 8f5a847..e7d9120 100644 --- a/filcnaplo/lib/api/providers/live_card_provider.dart +++ b/filcnaplo/lib/api/providers/live_card_provider.dart @@ -62,13 +62,13 @@ class LiveCardProvider extends ChangeNotifier { }); } }); - - _timer = Timer.periodic(const Duration(seconds: 1), (timer) => update()); - _delay = settings.bellDelayEnabled - ? Duration(seconds: settings.bellDelay) - : Duration.zero; - update(); } + + _timer = Timer.periodic(const Duration(seconds: 1), (timer) => update()); + _delay = settings.bellDelayEnabled + ? Duration(seconds: settings.bellDelay) + : Duration.zero; + update(); } @override From 4b127bdf56328835d6804ca7c55760a7388c12f8 Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 11:46:00 +0200 Subject: [PATCH 12/19] fixed homewrok not showing up --- filcnaplo/lib/app.dart | 1 + filcnaplo_kreta_api/lib/providers/homework_provider.dart | 2 ++ 2 files changed, 3 insertions(+) diff --git a/filcnaplo/lib/app.dart b/filcnaplo/lib/app.dart index 32ecb6d..d12e5cc 100644 --- a/filcnaplo/lib/app.dart +++ b/filcnaplo/lib/app.dart @@ -131,6 +131,7 @@ class App extends StatelessWidget { create: (context) => HomeworkProvider( context: context, database: database, + user: user, ), ), ChangeNotifierProvider( diff --git a/filcnaplo_kreta_api/lib/providers/homework_provider.dart b/filcnaplo_kreta_api/lib/providers/homework_provider.dart index 6985330..9d4eeb8 100644 --- a/filcnaplo_kreta_api/lib/providers/homework_provider.dart +++ b/filcnaplo_kreta_api/lib/providers/homework_provider.dart @@ -24,10 +24,12 @@ class HomeworkProvider with ChangeNotifier { List initialHomework = const [], required BuildContext context, required DatabaseProvider database, + required UserProvider user, }) { _homework = List.castFrom(initialHomework); _context = context; _database = database; + _user = user; if (_homework.isEmpty) restore(); } From a7f1681902f4a04085503f9118c5cee34d44b749 Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 11:48:09 +0200 Subject: [PATCH 13/19] someone commented birthday greeting, fuck yourself --- .../lib/pages/home/home_page.dart | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/filcnaplo_mobile_ui/lib/pages/home/home_page.dart b/filcnaplo_mobile_ui/lib/pages/home/home_page.dart index 158472c..fd8499f 100755 --- a/filcnaplo_mobile_ui/lib/pages/home/home_page.dart +++ b/filcnaplo_mobile_ui/lib/pages/home/home_page.dart @@ -112,16 +112,16 @@ class _HomePageState extends State with TickerProviderStateMixin { Future.delayed(const Duration(seconds: 1)) .then((value) => mounted ? _confettiController?.play() : null); } - // } else if (now.month == user.student?.birth.month && - // now.day == user.student?.birth.day) { - // greeting = "happybirthday"; + } else if (now.month == user.student?.birth.month && + now.day == user.student?.birth.day) { + greeting = "happybirthday"; - // if (NavigationScreen.of(context)?.init("confetti") ?? false) { - // _confettiController = - // ConfettiController(duration: const Duration(seconds: 3)); - // Future.delayed(const Duration(seconds: 1)) - // .then((value) => mounted ? _confettiController?.play() : null); - // } + if (NavigationScreen.of(context)?.init("confetti") ?? false) { + _confettiController = + ConfettiController(duration: const Duration(seconds: 3)); + Future.delayed(const Duration(seconds: 1)) + .then((value) => mounted ? _confettiController?.play() : null); + } } else if (now.isAfter(DateTime(now.year, DateTime.may, 28)) && now.isBefore(DateTime(now.year, DateTime.may, 30))) { greeting = "refilcopen"; From 387e2e46dbb2ac25d608e86a7c194011eb61cf90 Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 11:51:09 +0200 Subject: [PATCH 14/19] fixed i18n error spam on home screen (welcome msg) --- filcnaplo_mobile_ui/lib/pages/home/home_page.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/filcnaplo_mobile_ui/lib/pages/home/home_page.dart b/filcnaplo_mobile_ui/lib/pages/home/home_page.dart index fd8499f..c36451e 100755 --- a/filcnaplo_mobile_ui/lib/pages/home/home_page.dart +++ b/filcnaplo_mobile_ui/lib/pages/home/home_page.dart @@ -102,6 +102,8 @@ class _HomePageState extends State with TickerProviderStateMixin { firstName = "János"; } + bool customWelcome = settings.welcomeMessage.replaceAll(' ', '') != ''; + if (now.isBefore(DateTime(now.year, DateTime.august, 31)) && now.isAfter(DateTime(now.year, DateTime.june, 14))) { greeting = "goodrest"; @@ -138,7 +140,7 @@ class _HomePageState extends State with TickerProviderStateMixin { greeting = "merryxmas"; } else if (now.month == DateTime.january && now.day == 1) { greeting = "happynewyear"; - } else if (settings.welcomeMessage.replaceAll(' ', '') != '') { + } else if (customWelcome) { greeting = settings.welcomeMessage; greeting = localizeFill( settings.welcomeMessage, @@ -153,6 +155,8 @@ class _HomePageState extends State with TickerProviderStateMixin { } else { greeting = "goodevening"; } + + greeting = customWelcome ? greeting : greeting.i18n.fill([firstName]); } @override @@ -191,7 +195,7 @@ class _HomePageState extends State with TickerProviderStateMixin { title: Padding( padding: const EdgeInsets.only(left: 24.0), child: Text( - greeting.i18n.fill([firstName]), + greeting, overflow: TextOverflow.fade, style: TextStyle( fontWeight: FontWeight.bold, From 3d451f6f91b8550edf03e836107183c0c979d33b Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 11:52:39 +0200 Subject: [PATCH 15/19] fixed the fix lol --- filcnaplo_mobile_ui/lib/pages/home/home_page.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/filcnaplo_mobile_ui/lib/pages/home/home_page.dart b/filcnaplo_mobile_ui/lib/pages/home/home_page.dart index c36451e..00c9e9f 100755 --- a/filcnaplo_mobile_ui/lib/pages/home/home_page.dart +++ b/filcnaplo_mobile_ui/lib/pages/home/home_page.dart @@ -102,7 +102,7 @@ class _HomePageState extends State with TickerProviderStateMixin { firstName = "János"; } - bool customWelcome = settings.welcomeMessage.replaceAll(' ', '') != ''; + bool customWelcome = false; if (now.isBefore(DateTime(now.year, DateTime.august, 31)) && now.isAfter(DateTime(now.year, DateTime.june, 14))) { @@ -140,12 +140,14 @@ class _HomePageState extends State with TickerProviderStateMixin { greeting = "merryxmas"; } else if (now.month == DateTime.january && now.day == 1) { greeting = "happynewyear"; - } else if (customWelcome) { + } else if (settings.welcomeMessage.replaceAll(' ', '') != '') { greeting = settings.welcomeMessage; greeting = localizeFill( settings.welcomeMessage, [firstName], ); + + customWelcome = true; } else if (now.hour >= 18) { greeting = "goodevening"; } else if (now.hour >= 10) { From 69ea3e1a7f7627697d3c7e4912113cdc526f40ad Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 12:03:08 +0200 Subject: [PATCH 16/19] update version string --- filcnaplo/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/filcnaplo/pubspec.yaml b/filcnaplo/pubspec.yaml index d873a73..844ef02 100644 --- a/filcnaplo/pubspec.yaml +++ b/filcnaplo/pubspec.yaml @@ -3,7 +3,7 @@ description: "Nem hivatalos e-napló alkalmazás az e-Kréta rendszerhez" homepage: https://refilc.hu publish_to: "none" -version: 4.3.0+226 +version: 4.3.1+230 environment: sdk: ">=2.17.0 <3.0.0" From 5776622276b74adb89652c2c9f1dce70e809c27e Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 12:44:45 +0200 Subject: [PATCH 17/19] settings account tiles now showing nickname --- .../lib/screens/settings/settings_screen.dart | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.dart b/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.dart index 8d1df64..6e72b30 100755 --- a/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/settings_screen.dart @@ -87,7 +87,9 @@ class _SettingsScreenState extends State String _firstName; - List _nameParts = account.displayName.split(" "); + List _nameParts = + (account.nickname != '' ? account.nickname : account.displayName) + .split(" "); if (!settings.presentationMode) { _firstName = _nameParts.length > 1 ? _nameParts[1] : _nameParts[0]; } else { @@ -96,7 +98,10 @@ class _SettingsScreenState extends State accountTiles.add( AccountTile( - name: Text(!settings.presentationMode ? account.name : "János", + name: Text( + !settings.presentationMode + ? (account.nickname != '' ? account.nickname : account.name) + : "János", style: const TextStyle(fontWeight: FontWeight.w500)), username: Text( !settings.presentationMode ? account.username : "01234567890"), @@ -275,7 +280,7 @@ class _SettingsScreenState extends State child: Panel( child: Column( children: [ - // Account list + // account list ...accountTiles, if (accountTiles.isNotEmpty) @@ -291,7 +296,7 @@ class _SettingsScreenState extends State ), ), - // Account settings + // account settings PanelButton( onPressed: () { Navigator.of(context) From fd80aec51f38d5e903602b48a8537ecdc0c66323 Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 16:24:59 +0200 Subject: [PATCH 18/19] added upgrade-pub.sh to upgrade pub packages --- upgrade-pub.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 upgrade-pub.sh diff --git a/upgrade-pub.sh b/upgrade-pub.sh new file mode 100644 index 0000000..9dfe084 --- /dev/null +++ b/upgrade-pub.sh @@ -0,0 +1,7 @@ +cd filcnaplo && flutter pub upgrade && cd .. +cd filcnaplo_kreta_api && flutter pub upgrade && cd .. +cd filcnaplo_mobile_ui && flutter pub upgrade && cd .. +cd filcnaplo_desktop_ui && flutter pub upgrade && cd .. +cd filcnaplo_premium && flutter pub upgrade && cd .. + +echo Upgraded pub. \ No newline at end of file From b19da9cb66edbd40ee849e0f5254edb7c39f4275 Mon Sep 17 00:00:00 2001 From: Kima Date: Sun, 8 Oct 2023 16:55:06 +0200 Subject: [PATCH 19/19] finally fixed kreten error shit sdfadfsdfhsdfgh --- filcnaplo/lib/api/providers/status_provider.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/filcnaplo/lib/api/providers/status_provider.dart b/filcnaplo/lib/api/providers/status_provider.dart index 2183e52..85301bc 100644 --- a/filcnaplo/lib/api/providers/status_provider.dart +++ b/filcnaplo/lib/api/providers/status_provider.dart @@ -79,12 +79,12 @@ class StatusProvider extends ChangeNotifier { } } - if (res.body == "invalid_grant" || + if (res.body == 'invalid_grant' || res.body.replaceAll(' ', '') == '' || - (res.statusCode == 400 && - res.request?.url.path == 'ellenorzo/V3/Sajat/TanuloAdatlap')) { + res.statusCode == 400) { if (!_stack.contains(Status.apiError) && !_stack.contains(Status.network)) { + if (res.statusCode == 401) return; _stack.insert(0, Status.apiError); notifyListeners(); }