From a473adb10dad6e844b0f57cd20e77bf231f1bf13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 3 Sep 2023 20:22:05 +0200 Subject: [PATCH] Fixed webuntis bug, added share button --- .idea/libraries/Dart_Packages.xml | 16 ++++++++ .idea/libraries/Flutter_Plugins.xml | 25 ++++++------ android/.idea/gradle.xml | 24 +++++++----- android/.idea/jarRepositories.xml | 8 ++-- android/.idea/workspace.xml | 38 +++++++++---------- android/build.gradle | 2 +- lib/model/dataHolder.dart | 1 + lib/model/timetable/timetableProps.dart | 19 ++++++---- lib/view/pages/more/overhang.dart | 15 ++++++++ lib/widget/loadingSpinner.dart | 9 +++-- macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.yaml | 1 + .../flutter/generated_plugin_registrant.cc | 3 ++ windows/flutter/generated_plugins.cmake | 1 + 14 files changed, 109 insertions(+), 55 deletions(-) diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml index 6065cfc..83c8afa 100644 --- a/.idea/libraries/Dart_Packages.xml +++ b/.idea/libraries/Dart_Packages.xml @@ -1017,6 +1017,20 @@ + + + + + + + + + + + + @@ -1560,6 +1574,8 @@ + + diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml index a66e8f7..5cf28e4 100644 --- a/.idea/libraries/Flutter_Plugins.xml +++ b/.idea/libraries/Flutter_Plugins.xml @@ -1,32 +1,28 @@ - - - - - - - - - - - - + + + + + + + + @@ -39,12 +35,17 @@ + + + + + diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml index fac6e3b..41b2598 100644 --- a/android/.idea/gradle.xml +++ b/android/.idea/gradle.xml @@ -10,18 +10,24 @@ - + + + + + + + + + + + + + + - + - - - + @@ -121,11 +121,11 @@ - - 1690744630092 + + 1693761601368 diff --git a/android/build.gradle b/android/build.gradle index db9efaf..391b068 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.6.10' + ext.kotlin_version = '1.8.0' repositories { google() mavenCentral() diff --git a/lib/model/dataHolder.dart b/lib/model/dataHolder.dart index d8703b5..5169eb8 100644 --- a/lib/model/dataHolder.dart +++ b/lib/model/dataHolder.dart @@ -14,6 +14,7 @@ abstract class DataHolder extends ChangeNotifier { List properties(); bool primaryLoading() { + // log("${toString()} ${properties().map((e) => e != null ? "1" : "0").join(", ")}"); for(ApiResponse? element in properties()) { if(element == null) return true; } diff --git a/lib/model/timetable/timetableProps.dart b/lib/model/timetable/timetableProps.dart index c3ca35d..40545eb 100644 --- a/lib/model/timetable/timetableProps.dart +++ b/lib/model/timetable/timetableProps.dart @@ -1,7 +1,8 @@ +import 'dart:convert'; + import 'package:intl/intl.dart'; import '../../api/apiResponse.dart'; -import '../../api/webuntis/queries/getHolidays/getHolidaysCache.dart'; import '../../api/webuntis/queries/getHolidays/getHolidaysResponse.dart'; import '../../api/webuntis/queries/getRooms/getRoomsCache.dart'; import '../../api/webuntis/queries/getRooms/getRoomsResponse.dart'; @@ -78,12 +79,16 @@ class TimetableProps extends DataHolder { } ); - GetHolidaysCache( - onUpdate: (GetHolidaysResponse data) => { - _getHolidaysResponse = data, - notifyListeners(), - } - ); + // GetHolidaysCache( // TODO is this fixed by webuntis? miese kriese + // onUpdate: (GetHolidaysResponse data) => { + // _getHolidaysResponse = data, + // notifyListeners(), + // } + // ); + _getHolidaysResponse = GetHolidaysResponse.fromJson(jsonDecode(""" + {"jsonrpc":"2.0","id":"ID","result":[]} + """)); + notifyListeners(); } DateTime getDate(DateTime d) => DateTime(d.year, d.month, d.day); diff --git a/lib/view/pages/more/overhang.dart b/lib/view/pages/more/overhang.dart index 2cae8cb..08eb965 100644 --- a/lib/view/pages/more/overhang.dart +++ b/lib/view/pages/more/overhang.dart @@ -8,6 +8,7 @@ import 'package:fast_rsa/fast_rsa.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:persistent_bottom_nav_bar/persistent_tab_view.dart'; +import 'package:share_plus/share_plus.dart'; import '../../../model/endpointData.dart'; import '../../../widget/ListItem.dart'; @@ -23,6 +24,7 @@ class Overhang extends StatelessWidget { @override Widget build(BuildContext context) { + return Scaffold( appBar: AppBar( title: const Text("Mehr"), @@ -36,6 +38,19 @@ class Overhang extends StatelessWidget { const ListItemNavigator(icon: Icons.room, text: "Raumplan", target: Roomplan()), const ListItemNavigator(icon: Icons.calculate, text: "Notendurschnittsrechner", target: GradeAverage()), const ListItemNavigator(icon: Icons.calendar_month, text: "Schulferien", target: Holidays()), + ListTile( + leading: const Icon(Icons.share_outlined), + title: const Text("Teile die App mit deiner Klasse"), + onTap: () { + Share.share( // TODO ipad needs position argument + subject: "App Teilen", + "Hol dir die inoffizielle App für's Marianum:" + "\n\nAndroid: https://play.google.com/store/apps/details?id=eu.mhsl.marianum.mobile.client " + "\nApple: https://apps.apple.com/us/app/marianum-fulda/id6458789560 " + "\n\nViel Spaß!" + ); + }, + ), DebugTile(context, onlyInDebug: true).callback(onTab: () async { log("Starting"); log("Generate keys"); diff --git a/lib/widget/loadingSpinner.dart b/lib/widget/loadingSpinner.dart index 6ab2502..8fb9cfd 100644 --- a/lib/widget/loadingSpinner.dart +++ b/lib/widget/loadingSpinner.dart @@ -16,7 +16,7 @@ class _LoadingSpinnerState extends State { @override void initState() { - timer = Timer(const Duration(seconds: 15), () { + timer = Timer(const Duration(seconds: 30), () { setState(() { textVisible = true; }); @@ -33,13 +33,16 @@ class _LoadingSpinnerState extends State { children: [ Visibility( visible: !textVisible, - replacement: const Icon(Icons.signal_wifi_connected_no_internet_4_outlined), + replacement: const Icon(Icons.sentiment_dissatisfied_outlined), child: const CircularProgressIndicator(), ), const SizedBox(height: 30), Visibility( visible: textVisible, - child: const Text("Etwas scheint nicht zu funktionieren!\nBist du mit dem Internet verbunden?\n\nVersuche die App neuzustarten"), + child: const Text( + textAlign: TextAlign.center, + "Irgendetwas funktioniert nicht!\nBist du mit dem Internet verbunden?\n\nVersuche die App neuzustarten" + ), ), ], ), diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 8ef9ded..7e74013 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -13,6 +13,7 @@ import firebase_messaging import flutter_local_notifications import package_info import path_provider_foundation +import share_plus import shared_preferences_foundation import sqflite import syncfusion_pdfviewer_macos @@ -27,6 +28,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) FLTPackageInfoPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) SyncfusionFlutterPdfViewerPlugin.register(with: registry.registrar(forPlugin: "SyncfusionFlutterPdfViewerPlugin")) diff --git a/pubspec.yaml b/pubspec.yaml index 09f0011..c17b259 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -87,6 +87,7 @@ dependencies: flutter_local_notifications: ^15.1.0+1 fluttertoast: ^8.2.2 fast_rsa: ^3.6.1 + share_plus: ^7.1.0 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index b785075..da31771 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -19,6 +20,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("FileSelectorWindows")); FirebaseCorePluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); + SharePlusWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); SyncfusionPdfviewerWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("SyncfusionPdfviewerWindowsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index ab8f8ec..a2ae4b5 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -6,6 +6,7 @@ list(APPEND FLUTTER_PLUGIN_LIST fast_rsa file_selector_windows firebase_core + share_plus syncfusion_pdfviewer_windows url_launcher_windows )