16 Commits

Author SHA1 Message Date
7dea44d1e8 Merge remote-tracking branch 'origin/develop' into develop 2025-09-10 20:23:20 +02:00
5f27956035 fix webuntis auth retry not working correctly 2025-09-10 20:23:14 +02:00
32799f648c working ios build update 2025-09-09 13:58:00 +02:00
859b85ab2c Revert "Upgraded Gradle and Android Gradle Plugin"
This reverts commit bd1101c348.
2025-09-06 18:51:00 +02:00
bd1101c348 Upgraded Gradle and Android Gradle Plugin
Upgraded Gradle from 8.9 to 8.13 and the Android Gradle Plugin from 8.7.3 to 8.13.0.
2025-09-06 17:35:41 +02:00
f29c84d05c fixed timetable subject name requirement 2025-09-06 17:03:01 +02:00
7dbd6038f3 prevent common "change" tiles in timetable, more robust parsing 2025-09-06 16:47:47 +02:00
877633f4de Merge pull request 'develop-groupedParticipants' (#89) from develop-groupedParticipants into develop
Reviewed-on: #89
Reviewed-by: Elias Müller <elias@elias-mueller.com>
2025-09-06 14:12:10 +00:00
22d3d18a17 changed naming for participants 2025-09-06 16:09:47 +02:00
d65e61c297 Merge branch 'develop' into develop-groupedParticipants 2025-09-06 13:58:08 +00:00
467b0e0dd8 Merge remote-tracking branch 'origin/develop' into develop 2025-09-06 15:57:19 +02:00
25a6ef37fa Merge branch 'develop' into develop-groupedParticipants 2025-09-06 13:57:10 +00:00
34763ace4a Merge remote-tracking branch 'origin/develop' into develop 2025-09-06 15:57:08 +02:00
590a70c623 Merge remote-tracking branch 'origin/develop' into develop 2025-09-06 15:56:51 +02:00
9b58412ca7 fixed missing no reaction text
fixed loading indicator being delayed on file download
2025-09-06 15:56:46 +02:00
a6c16e41c2 fixed missing no reaction text
fixed loading indicator being delayed on file download
2025-09-06 15:56:28 +02:00
14 changed files with 219 additions and 181 deletions

BIN
ios/.DS_Store vendored

Binary file not shown.

View File

@@ -21,6 +21,6 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.0</string> <string>1.0</string>
<key>MinimumOSVersion</key> <key>MinimumOSVersion</key>
<string>11.0</string> <string>13.0</string>
</dict> </dict>
</plist> </plist>

View File

@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project # Uncomment this line to define a global platform for your project
platform :ios, '11.0' platform :ios, '15.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true' ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -31,6 +31,8 @@ target 'Runner' do
use_frameworks! use_frameworks!
use_modular_headers! use_modular_headers!
pod 'PhoneNumberKit', '~> 3.7.6'
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
# target 'RunnerTests' do # target 'RunnerTests' do
# inherit! :search_paths # inherit! :search_paths

View File

@@ -1,185 +1,194 @@
PODS: PODS:
- better_open_file (0.0.1): - connectivity_plus (0.0.1):
- Flutter - Flutter
- device_info_plus (0.0.1): - device_info_plus (0.0.1):
- Flutter - Flutter
- DKImagePickerController/Core (4.3.4): - DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager - DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource - DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.4) - DKImagePickerController/ImageDataManager (4.3.9)
- DKImagePickerController/PhotoGallery (4.3.4): - DKImagePickerController/PhotoGallery (4.3.9):
- DKImagePickerController/Core - DKImagePickerController/Core
- DKPhotoGallery - DKPhotoGallery
- DKImagePickerController/Resource (4.3.4) - DKImagePickerController/Resource (4.3.9)
- DKPhotoGallery (0.0.17): - DKPhotoGallery (0.0.19):
- DKPhotoGallery/Core (= 0.0.17) - DKPhotoGallery/Core (= 0.0.19)
- DKPhotoGallery/Model (= 0.0.17) - DKPhotoGallery/Model (= 0.0.19)
- DKPhotoGallery/Preview (= 0.0.17) - DKPhotoGallery/Preview (= 0.0.19)
- DKPhotoGallery/Resource (= 0.0.17) - DKPhotoGallery/Resource (= 0.0.19)
- SDWebImage - SDWebImage
- SwiftyGif - SwiftyGif
- DKPhotoGallery/Core (0.0.17): - DKPhotoGallery/Core (0.0.19):
- DKPhotoGallery/Model - DKPhotoGallery/Model
- DKPhotoGallery/Preview - DKPhotoGallery/Preview
- SDWebImage - SDWebImage
- SwiftyGif - SwiftyGif
- DKPhotoGallery/Model (0.0.17): - DKPhotoGallery/Model (0.0.19):
- SDWebImage - SDWebImage
- SwiftyGif - SwiftyGif
- DKPhotoGallery/Preview (0.0.17): - DKPhotoGallery/Preview (0.0.19):
- DKPhotoGallery/Model - DKPhotoGallery/Model
- DKPhotoGallery/Resource - DKPhotoGallery/Resource
- SDWebImage - SDWebImage
- SwiftyGif - SwiftyGif
- DKPhotoGallery/Resource (0.0.17): - DKPhotoGallery/Resource (0.0.19):
- SDWebImage - SDWebImage
- SwiftyGif - SwiftyGif
- emoji_picker_flutter (0.0.1):
- Flutter
- fast_rsa (0.6.0): - fast_rsa (0.6.0):
- Flutter - Flutter
- file_picker (0.0.1): - file_picker (0.0.1):
- DKImagePickerController/PhotoGallery - DKImagePickerController/PhotoGallery
- Flutter - Flutter
- Firebase/CoreOnly (10.12.0): - Firebase/CoreOnly (12.2.0):
- FirebaseCore (= 10.12.0) - FirebaseCore (~> 12.2.0)
- Firebase/InAppMessaging (10.12.0): - Firebase/InAppMessaging (12.2.0):
- Firebase/CoreOnly - Firebase/CoreOnly
- FirebaseInAppMessaging (~> 10.12.0-beta) - FirebaseInAppMessaging (~> 12.2.0-beta)
- Firebase/Messaging (10.12.0): - Firebase/Messaging (12.2.0):
- Firebase/CoreOnly - Firebase/CoreOnly
- FirebaseMessaging (~> 10.12.0) - FirebaseMessaging (~> 12.2.0)
- firebase_core (2.15.1): - firebase_core (4.1.0):
- Firebase/CoreOnly (= 10.12.0) - Firebase/CoreOnly (= 12.2.0)
- Flutter - Flutter
- firebase_in_app_messaging (0.7.3-5): - firebase_in_app_messaging (0.9.0-1):
- Firebase/InAppMessaging (= 10.12.0) - Firebase/InAppMessaging (= 12.2.0)
- firebase_core - firebase_core
- Flutter - Flutter
- firebase_messaging (14.6.6): - firebase_messaging (16.0.1):
- Firebase/Messaging (= 10.12.0) - Firebase/Messaging (= 12.2.0)
- firebase_core - firebase_core
- Flutter - Flutter
- FirebaseABTesting (10.13.0): - FirebaseABTesting (12.2.0):
- FirebaseCore (~> 10.0) - FirebaseCore (~> 12.2.0)
- FirebaseCore (10.12.0): - FirebaseCore (12.2.0):
- FirebaseCoreInternal (~> 10.0) - FirebaseCoreInternal (~> 12.2.0)
- GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/Logger (~> 7.8) - GoogleUtilities/Logger (~> 8.1)
- FirebaseCoreInternal (10.13.0): - FirebaseCoreInternal (12.2.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)" - "GoogleUtilities/NSData+zlib (~> 8.1)"
- FirebaseInAppMessaging (10.12.0-beta): - FirebaseInAppMessaging (12.2.0-beta):
- FirebaseABTesting (~> 10.0) - FirebaseABTesting (~> 12.2.0)
- FirebaseCore (~> 10.0) - FirebaseCore (~> 12.2.0)
- FirebaseInstallations (~> 10.0) - FirebaseInstallations (~> 12.2.0)
- GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Environment (~> 8.1)
- nanopb (< 2.30910.0, >= 2.30908.0) - GoogleUtilities/UserDefaults (~> 8.1)
- FirebaseInstallations (10.13.0): - nanopb (~> 3.30910.0)
- FirebaseCore (~> 10.0) - FirebaseInstallations (12.2.0):
- GoogleUtilities/Environment (~> 7.8) - FirebaseCore (~> 12.2.0)
- GoogleUtilities/UserDefaults (~> 7.8) - GoogleUtilities/Environment (~> 8.1)
- PromisesObjC (~> 2.1) - GoogleUtilities/UserDefaults (~> 8.1)
- FirebaseMessaging (10.12.0): - PromisesObjC (~> 2.4)
- FirebaseCore (~> 10.0) - FirebaseMessaging (12.2.0):
- FirebaseInstallations (~> 10.0) - FirebaseCore (~> 12.2.0)
- GoogleDataTransport (~> 9.2) - FirebaseInstallations (~> 12.2.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleDataTransport (~> 10.1)
- GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/AppDelegateSwizzler (~> 8.1)
- GoogleUtilities/Reachability (~> 7.8) - GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/UserDefaults (~> 7.8) - GoogleUtilities/Reachability (~> 8.1)
- nanopb (< 2.30910.0, >= 2.30908.0) - GoogleUtilities/UserDefaults (~> 8.1)
- nanopb (~> 3.30910.0)
- Flutter (1.0.0) - Flutter (1.0.0)
- flutter_app_badger (1.3.0): - flutter_app_badge (2.0.0):
- Flutter - Flutter
- flutter_local_notifications (0.0.1): - flutter_local_notifications (0.0.1):
- Flutter - Flutter
- flutter_native_splash (0.0.1): - flutter_native_splash (2.4.3):
- Flutter - Flutter
- fluttertoast (0.0.2): - GoogleDataTransport (10.1.0):
- Flutter - nanopb (~> 3.30910.0)
- Toast - PromisesObjC (~> 2.4)
- FMDB (2.7.5): - GoogleUtilities/AppDelegateSwizzler (8.1.0):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- GoogleDataTransport (9.2.5):
- GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (< 3.0, >= 1.2)
- GoogleUtilities/AppDelegateSwizzler (7.11.5):
- GoogleUtilities/Environment - GoogleUtilities/Environment
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/Network - GoogleUtilities/Network
- GoogleUtilities/Environment (7.11.5): - GoogleUtilities/Privacy
- PromisesObjC (< 3.0, >= 1.2) - GoogleUtilities/Environment (8.1.0):
- GoogleUtilities/Logger (7.11.5): - GoogleUtilities/Privacy
- GoogleUtilities/Logger (8.1.0):
- GoogleUtilities/Environment - GoogleUtilities/Environment
- GoogleUtilities/Network (7.11.5): - GoogleUtilities/Privacy
- GoogleUtilities/Network (8.1.0):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib" - "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Privacy
- GoogleUtilities/Reachability - GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (7.11.5)" - "GoogleUtilities/NSData+zlib (8.1.0)":
- GoogleUtilities/Reachability (7.11.5): - GoogleUtilities/Privacy
- GoogleUtilities/Privacy (8.1.0)
- GoogleUtilities/Reachability (8.1.0):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/UserDefaults (7.11.5): - GoogleUtilities/Privacy
- GoogleUtilities/UserDefaults (8.1.0):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/Privacy
- image_picker_ios (0.0.1): - image_picker_ios (0.0.1):
- Flutter - Flutter
- in_app_review (2.0.0):
- Flutter
- libphonenumber_plugin (0.0.1): - libphonenumber_plugin (0.0.1):
- Flutter - Flutter
- PhoneNumberKit - PhoneNumberKit
- nanopb (2.30909.0): - nanopb (3.30910.0):
- nanopb/decode (= 2.30909.0) - nanopb/decode (= 3.30910.0)
- nanopb/encode (= 2.30909.0) - nanopb/encode (= 3.30910.0)
- nanopb/decode (2.30909.0) - nanopb/decode (3.30910.0)
- nanopb/encode (2.30909.0) - nanopb/encode (3.30910.0)
- package_info (0.0.1): - open_filex (0.0.2):
- Flutter
- package_info_plus (0.4.5):
- Flutter - Flutter
- path_provider_foundation (0.0.1): - path_provider_foundation (0.0.1):
- Flutter - Flutter
- FlutterMacOS - FlutterMacOS
- PhoneNumberKit (3.6.7): - PhoneNumberKit (3.7.11):
- PhoneNumberKit/PhoneNumberKitCore (= 3.6.7) - PhoneNumberKit/PhoneNumberKitCore (= 3.7.11)
- PhoneNumberKit/UIKit (= 3.6.7) - PhoneNumberKit/UIKit (= 3.7.11)
- PhoneNumberKit/PhoneNumberKitCore (3.6.7) - PhoneNumberKit/PhoneNumberKitCore (3.7.11)
- PhoneNumberKit/UIKit (3.6.7): - PhoneNumberKit/UIKit (3.7.11):
- PhoneNumberKit/PhoneNumberKitCore - PhoneNumberKit/PhoneNumberKitCore
- PromisesObjC (2.3.1) - PromisesObjC (2.4.0)
- SDWebImage (5.17.0): - SDWebImage (5.21.2):
- SDWebImage/Core (= 5.17.0) - SDWebImage/Core (= 5.21.2)
- SDWebImage/Core (5.17.0) - SDWebImage/Core (5.21.2)
- share_plus (0.0.1): - share_plus (0.0.1):
- Flutter - Flutter
- shared_preferences_foundation (0.0.1): - shared_preferences_foundation (0.0.1):
- Flutter - Flutter
- FlutterMacOS - FlutterMacOS
- sqflite (0.0.3): - sqflite_darwin (0.0.4):
- Flutter - Flutter
- FMDB (>= 2.7.5) - FlutterMacOS
- SwiftyGif (5.4.4) - SwiftyGif (5.4.5)
- syncfusion_flutter_pdfviewer (0.0.1): - syncfusion_flutter_pdfviewer (0.0.1):
- Flutter - Flutter
- Toast (4.0.0)
- url_launcher_ios (0.0.1): - url_launcher_ios (0.0.1):
- Flutter - Flutter
DEPENDENCIES: DEPENDENCIES:
- better_open_file (from `.symlinks/plugins/better_open_file/ios`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- emoji_picker_flutter (from `.symlinks/plugins/emoji_picker_flutter/ios`)
- fast_rsa (from `.symlinks/plugins/fast_rsa/ios`) - fast_rsa (from `.symlinks/plugins/fast_rsa/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- firebase_in_app_messaging (from `.symlinks/plugins/firebase_in_app_messaging/ios`) - firebase_in_app_messaging (from `.symlinks/plugins/firebase_in_app_messaging/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- Flutter (from `Flutter`) - Flutter (from `Flutter`)
- flutter_app_badger (from `.symlinks/plugins/flutter_app_badger/ios`) - flutter_app_badge (from `.symlinks/plugins/flutter_app_badge/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- in_app_review (from `.symlinks/plugins/in_app_review/ios`)
- libphonenumber_plugin (from `.symlinks/plugins/libphonenumber_plugin/ios`) - libphonenumber_plugin (from `.symlinks/plugins/libphonenumber_plugin/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`) - open_filex (from `.symlinks/plugins/open_filex/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- PhoneNumberKit (~> 3.7.6)
- share_plus (from `.symlinks/plugins/share_plus/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite (from `.symlinks/plugins/sqflite/ios`) - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
- syncfusion_flutter_pdfviewer (from `.symlinks/plugins/syncfusion_flutter_pdfviewer/ios`) - syncfusion_flutter_pdfviewer (from `.symlinks/plugins/syncfusion_flutter_pdfviewer/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
@@ -194,7 +203,6 @@ SPEC REPOS:
- FirebaseInAppMessaging - FirebaseInAppMessaging
- FirebaseInstallations - FirebaseInstallations
- FirebaseMessaging - FirebaseMessaging
- FMDB
- GoogleDataTransport - GoogleDataTransport
- GoogleUtilities - GoogleUtilities
- nanopb - nanopb
@@ -202,13 +210,14 @@ SPEC REPOS:
- PromisesObjC - PromisesObjC
- SDWebImage - SDWebImage
- SwiftyGif - SwiftyGif
- Toast
EXTERNAL SOURCES: EXTERNAL SOURCES:
better_open_file: connectivity_plus:
:path: ".symlinks/plugins/better_open_file/ios" :path: ".symlinks/plugins/connectivity_plus/ios"
device_info_plus: device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios" :path: ".symlinks/plugins/device_info_plus/ios"
emoji_picker_flutter:
:path: ".symlinks/plugins/emoji_picker_flutter/ios"
fast_rsa: fast_rsa:
:path: ".symlinks/plugins/fast_rsa/ios" :path: ".symlinks/plugins/fast_rsa/ios"
file_picker: file_picker:
@@ -221,74 +230,76 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/firebase_messaging/ios" :path: ".symlinks/plugins/firebase_messaging/ios"
Flutter: Flutter:
:path: Flutter :path: Flutter
flutter_app_badger: flutter_app_badge:
:path: ".symlinks/plugins/flutter_app_badger/ios" :path: ".symlinks/plugins/flutter_app_badge/ios"
flutter_local_notifications: flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios" :path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_native_splash: flutter_native_splash:
:path: ".symlinks/plugins/flutter_native_splash/ios" :path: ".symlinks/plugins/flutter_native_splash/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
image_picker_ios: image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios" :path: ".symlinks/plugins/image_picker_ios/ios"
in_app_review:
:path: ".symlinks/plugins/in_app_review/ios"
libphonenumber_plugin: libphonenumber_plugin:
:path: ".symlinks/plugins/libphonenumber_plugin/ios" :path: ".symlinks/plugins/libphonenumber_plugin/ios"
package_info: open_filex:
:path: ".symlinks/plugins/package_info/ios" :path: ".symlinks/plugins/open_filex/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation: path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin" :path: ".symlinks/plugins/path_provider_foundation/darwin"
share_plus: share_plus:
:path: ".symlinks/plugins/share_plus/ios" :path: ".symlinks/plugins/share_plus/ios"
shared_preferences_foundation: shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin" :path: ".symlinks/plugins/shared_preferences_foundation/darwin"
sqflite: sqflite_darwin:
:path: ".symlinks/plugins/sqflite/ios" :path: ".symlinks/plugins/sqflite_darwin/darwin"
syncfusion_flutter_pdfviewer: syncfusion_flutter_pdfviewer:
:path: ".symlinks/plugins/syncfusion_flutter_pdfviewer/ios" :path: ".symlinks/plugins/syncfusion_flutter_pdfviewer/ios"
url_launcher_ios: url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios" :path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS: SPEC CHECKSUMS:
better_open_file: 03cf320415d4d3f46b6e00adc4a567d76c1a399d connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
device_info_plus: 7545d84d8d1b896cb16a4ff98c19f07ec4b298ea device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
fast_rsa: f696740d492d562e76f17b0a81dfc8ec3e635374 emoji_picker_flutter: ece213fc274bdddefb77d502d33080dc54e616cc
file_picker: ce3938a0df3cc1ef404671531facef740d03f920 fast_rsa: 8cf0f70421610bbe9462db881cdeef1cdd626153
Firebase: 07150e75d142fb9399f6777fa56a187b17f833a0 file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be
firebase_core: 4a3246a02f828a01c74a2c26427037786d90f17f Firebase: 26f6f8d460603af3df970ad505b16b15f5e2e9a1
firebase_in_app_messaging: aebdbc10109a0ce44a3294f4ea57ed89ebe1d8bd firebase_core: 3ff52146406557dddd01d570e807e203ec7e1302
firebase_messaging: 13b378c8449cae7ec96c79570170943dd73d4738 firebase_in_app_messaging: 42894eb8e92aa83ac58f1c534dc9f9f9546f23b9
FirebaseABTesting: 86ac5a4fc749088bb4d55a1cbfb2c4cb42c6d5de firebase_messaging: 3dcc998dd98e1e54af75d0cccae8606eba43553c
FirebaseCore: f86a1394906b97ac445ae49c92552a9425831bed FirebaseABTesting: 32f3fc079d72c9b93e000b60877c4e4f62ef7031
FirebaseCoreInternal: b342e37cd4f5b4454ec34308f073420e7920858e FirebaseCore: 311c48a147ad4a0ab7febbaed89e8025c67510cd
FirebaseInAppMessaging: dc24f50aebaf81a377f0b8abf360778f94208931 FirebaseCoreInternal: 56ea29f3dad2894f81b060f706f9d53509b6ed3b
FirebaseInstallations: b28af1b9f997f1a799efe818c94695a3728c352f FirebaseInAppMessaging: fecba63d44c5cd8f874e9d661a5aa5047380c7d0
FirebaseMessaging: bb2c4f6422a753038fe137d90ae7c1af57251316 FirebaseInstallations: 3e884b01feabdf67582a80f3250425a00979b4ed
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 FirebaseMessaging: 43ec73bbfedd0c385a849bb91593ab4ad4b9e48e
flutter_app_badger: b87fc231847b03b92ce1412aa351842e7e97932f Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743 flutter_app_badge: ca742dd659a157c1090ef7cd881cb78f48f3bcdf
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb
fluttertoast: fafc4fa4d01a6a9e4f772ecd190ffa525e9e2d9c flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 in_app_review: 5596fe56fab799e8edb3561c03d053363ab13457
libphonenumber_plugin: e8a7d64a6624a7c25f2c4ab0b7ead2a8e341e35e libphonenumber_plugin: d134f173b22bfa5ede50887071f087f309277f8c
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 open_filex: 432f3cd11432da3e39f47fcc0df2b1603854eff1
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
PhoneNumberKit: 43b5169526cc417398c8f13f77c97552c1c6ed76 path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 PhoneNumberKit: ced55861269312a5e3bc2ef82a58d6255b1c976a
SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028 SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126 share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
syncfusion_flutter_pdfviewer: bb9998884b864cfedf72628df3503bdf57e397c0 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 syncfusion_flutter_pdfviewer: 90dc48305d2e33d4aa20681d1e98ddeda891bc14
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
PODFILE CHECKSUM: 3d89a90682e2cd438911ad748b8ba5992f8b6a0e PODFILE CHECKSUM: e21c9d4c7b9623c73c6784ddc132fd50a603ad93
COCOAPODS: 1.12.1 COCOAPODS: 1.16.2

View File

@@ -144,6 +144,7 @@
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
174B54D80220E5F588BD9737 /* [CP] Embed Pods Frameworks */, 174B54D80220E5F588BD9737 /* [CP] Embed Pods Frameworks */,
859FAB4E05FAC31B7B1A62D7 /* [CP] Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
@@ -161,7 +162,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1430; LastUpgradeCheck = 1510;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
TargetAttributes = { TargetAttributes = {
97C146ED1CF9000F007C117D = { 97C146ED1CF9000F007C117D = {
@@ -237,6 +238,23 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
}; };
859FAB4E05FAC31B7B1A62D7 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1; alwaysOutOfDate = 1;
@@ -349,7 +367,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@@ -434,7 +452,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -483,7 +501,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1430" LastUpgradeVersion = "1510"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
@@ -43,11 +44,13 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO" ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES" debugDocumentVersioning = "YES"
debugServiceExtension = "internal" debugServiceExtension = "internal"
enableGPUValidationMode = "1"
allowLocationSimulation = "YES"> allowLocationSimulation = "YES">
<BuildableProductRunnable <BuildableProductRunnable
runnableDebuggingMode = "0"> runnableDebuggingMode = "0">

View File

@@ -1,7 +1,7 @@
import UIKit import UIKit
import Flutter import Flutter
@UIApplicationMain @main
@objc class AppDelegate: FlutterAppDelegate { @objc class AppDelegate: FlutterAppDelegate {
override func application( override func application(
_ application: UIApplication, _ application: UIApplication,

View File

@@ -57,9 +57,9 @@ class GetParticipantsResponseObject {
enum GetParticipantsResponseObjectParticipantType { enum GetParticipantsResponseObjectParticipantType {
@JsonValue(1) owner('Besitzer'), @JsonValue(1) owner('Besitzer'),
@JsonValue(2) moderator('Moderator'), @JsonValue(2) moderator('Moderator'),
@JsonValue(3) user('Benutzer'), @JsonValue(3) user('Teilnehmer'),
@JsonValue(4) guest('Gast'), @JsonValue(4) guest('Gast'),
@JsonValue(5) userFollowingPublicLink('Link Nutzer'), @JsonValue(5) userFollowingPublicLink('Teilnehmer über Link'),
@JsonValue(6) guestWithModeratorPermissions('Gast Moderator'); @JsonValue(6) guestWithModeratorPermissions('Gast Moderator');
const GetParticipantsResponseObjectParticipantType(this.prettyName); const GetParticipantsResponseObjectParticipantType(this.prettyName);

View File

@@ -19,7 +19,7 @@ abstract class WebuntisApi extends ApiRequest {
WebuntisApi(this.method, this.genericParam, {this.authenticatedResponse = true}); WebuntisApi(this.method, this.genericParam, {this.authenticatedResponse = true});
Future<String> query(WebuntisApi untis) async { Future<String> query(WebuntisApi untis, {bool retry = false}) async {
var query = '{"id":"ID","method":"$method","params":${untis._body()},"jsonrpc":"2.0"}'; var query = '{"id":"ID","method":"$method","params":${untis._body()},"jsonrpc":"2.0"}';
var sessionId = '0'; var sessionId = '0';
@@ -32,8 +32,9 @@ abstract class WebuntisApi extends ApiRequest {
dynamic jsonData = jsonDecode(data.body); dynamic jsonData = jsonDecode(data.body);
if(jsonData['error'] != null) { if(jsonData['error'] != null) {
if(jsonData['error']['code'] == -8520) { if(jsonData['error']['code'] == -8520) {
if(retry) throw WebuntisError('Authentication was tried (probably session timeout), but was not successful!', 1);
await Authenticate.createSession(); await Authenticate.createSession();
this.query(untis); return await this.query(untis, retry: true);
} else { } else {
throw WebuntisError(jsonData['error']['message'], jsonData['error']['code']); throw WebuntisError(jsonData['error']['message'], jsonData['error']['code']);
} }

View File

@@ -66,7 +66,7 @@ class _ChatInfoState extends State<ChatInfo> {
if(participants != null) ...[ if(participants != null) ...[
ListTile( ListTile(
leading: const Icon(Icons.supervised_user_circle), leading: const Icon(Icons.supervised_user_circle),
title: Text('${participants!.data.length} Teilnehmer'), title: Text('${participants!.data.length} Mitglieder'),
trailing: const Icon(Icons.arrow_right), trailing: const Icon(Icons.arrow_right),
onTap: () => TalkNavigator.pushSplitView(context, ParticipantsListView(participants!)), onTap: () => TalkNavigator.pushSplitView(context, ParticipantsListView(participants!)),
), ),

View File

@@ -19,7 +19,7 @@ class ParticipantsListView extends StatelessWidget {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: const Text('Teilnehmende'), title: const Text('Mitglieder'),
), ),
body: ListView( body: ListView(
children: [ children: [

View File

@@ -323,7 +323,9 @@ class _ChatBubbleState extends State<ChatBubble> with SingleTickerProviderStateM
return; return;
} }
setState(() {
downloadProgress = 1; downloadProgress = 1;
});
downloadCore = FileElement.download(context, message.file!.path!, message.file!.name, (progress) { downloadCore = FileElement.download(context, message.file!.path!, message.file!.name, (progress) {
if(progress > 1) { if(progress > 1) {
setState(() { setState(() {
@@ -408,7 +410,7 @@ class _ChatBubbleState extends State<ChatBubble> with SingleTickerProviderStateM
bottom: 0, bottom: 0,
right: 0, right: 0,
left: 0, left: 0,
child: LinearProgressIndicator(value: downloadProgress/100), child: LinearProgressIndicator(value: downloadProgress == 1 ? null : downloadProgress/100),
), ),
), ),
], ],

View File

@@ -1,4 +1,3 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -38,7 +37,7 @@ class _MessageReactionsState extends State<MessageReactions> {
future: data, future: data,
builder: (context, snapshot) { builder: (context, snapshot) {
if(snapshot.connectionState == ConnectionState.waiting) return const LoadingSpinner(); if(snapshot.connectionState == ConnectionState.waiting) return const LoadingSpinner();
if(snapshot.data == null) return const PlaceholderView(icon: Icons.search_off_outlined, text: 'Keine Reaktionen gefunden!'); if(snapshot.data!.data.isEmpty) return const PlaceholderView(icon: Icons.search_off_outlined, text: 'Keine Reaktionen gefunden!');
return ListView( return ListView(
children: [ children: [
...snapshot.data!.data.entries.map<Widget>((entry) => ExpansionTile( ...snapshot.data!.data.entries.map<Widget>((entry) => ExpansionTile(

View File

@@ -1,6 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../../../extensions/dateTime.dart'; import '../../../extensions/dateTime.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -302,23 +302,25 @@ class _TimetableState extends State<Timetable> {
var startTime = _parseWebuntisTimestamp(element.date, element.startTime); var startTime = _parseWebuntisTimestamp(element.date, element.startTime);
var endTime = _parseWebuntisTimestamp(element.date, element.endTime); var endTime = _parseWebuntisTimestamp(element.date, element.endTime);
var subject = subjects.result.firstWhere((subject) => subject.id == element.su[0].id); var subject = subjects.result.firstWhereOrNull((subject) => subject.id == element.su.firstOrNull?.id);
var subjectName = { var subjectName = 'Unbekannt';
if(subject != null) {
subjectName = {
TimetableNameMode.name: subject.name, TimetableNameMode.name: subject.name,
TimetableNameMode.longName: subject.longName, TimetableNameMode.longName: subject.longName,
TimetableNameMode.alternateName: subject.alternateName, TimetableNameMode.alternateName: subject.alternateName,
}[settings.val().timetableSettings.timetableNameMode]; }[settings.val().timetableSettings.timetableNameMode]!;
}
return Appointment( return Appointment(
id: ArbitraryAppointment(webuntis: element), id: ArbitraryAppointment(webuntis: element),
startTime: startTime, startTime: startTime,
endTime: endTime, endTime: endTime,
subject: subjectName!, subject: subjectName,
location: '' location: ''
'${rooms.result.firstWhere((room) => room.id == element.ro[0].id).name}' '${rooms.result.firstWhereOrNull((room) => room.id == element.ro.firstOrNull?.id)?.name ?? 'Unbekannt'}'
'\n' '\n'
'${element.te.first.longname}', '${element.te.firstOrNull?.longname ?? 'Unbekannt'}',
notes: element.activityType, notes: element.activityType,
color: _getEventColor(element, startTime, endTime), color: _getEventColor(element, startTime, endTime),
); );
@@ -331,7 +333,7 @@ class _TimetableState extends State<Timetable> {
subject: 'Änderung', subject: 'Änderung',
notes: element.info, notes: element.info,
location: 'Unbekannt', location: 'Unbekannt',
color: endTime.isBefore(DateTime.now()) ? Theme.of(context).primaryColor.withAlpha(100) : Theme.of(context).primaryColor, color: const Color(0xff404040).withAlpha(endTime.isBefore(DateTime.now()) ? 100 : 255),
startTimeZone: '', startTimeZone: '',
endTimeZone: '', endTimeZone: '',
); );