diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml
index 8e3b1a8..0bc0df2 100644
--- a/android/.idea/gradle.xml
+++ b/android/.idea/gradle.xml
@@ -9,14 +9,17 @@
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
diff --git a/android/.idea/jarRepositories.xml b/android/.idea/jarRepositories.xml
index 7a35ca4..aea0c22 100644
--- a/android/.idea/jarRepositories.xml
+++ b/android/.idea/jarRepositories.xml
@@ -17,8 +17,8 @@
-
-
+
+
diff --git a/android/.idea/kotlinc.xml b/android/.idea/kotlinc.xml
index 4515aa3..4251b72 100644
--- a/android/.idea/kotlinc.xml
+++ b/android/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/android/.idea/workspace.xml b/android/.idea/workspace.xml
index 5534c9c..ac18d62 100644
--- a/android/.idea/workspace.xml
+++ b/android/.idea/workspace.xml
@@ -4,18 +4,19 @@
-
-
+
+
+
-
+
@@ -29,7 +30,7 @@
-
+
@@ -39,6 +40,8 @@
"keyToString": {
"BundleExportedModule": "android.app",
"ExportBundle.BundlePathForandroid.app": "/home/elias/projects/MarianumMobile/Client/android/app",
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"cidr.known.project.marker": "true",
"dart.analysis.tool.window.visible": "false",
@@ -114,11 +117,11 @@
-
- 1683400983746
+
+ 1686338678988
- 1683400983746
+ 1686338678988
diff --git a/lib/view/pages/files/files.dart b/lib/view/pages/files/files.dart
index 4475b42..f42abb7 100644
--- a/lib/view/pages/files/files.dart
+++ b/lib/view/pages/files/files.dart
@@ -5,6 +5,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:marianum_mobile/storage/base/settingsProvider.dart';
+import 'package:marianum_mobile/widget/loadingSpinner.dart';
import 'package:provider/provider.dart';
import '../../../api/marianumcloud/webdav/queries/listFiles/cacheableFile.dart';
@@ -223,7 +224,7 @@ class _FilesState extends State {
},
child: const Icon(Icons.add),
),
- body: data == null ? const Center(child: CircularProgressIndicator()) : data!.files.isEmpty ? const ErrorView(icon: Icons.folder_off_rounded, text: "Der Ordner ist leer") : LoaderOverlay(
+ body: data == null ? const LoadingSpinner() : data!.files.isEmpty ? const ErrorView(icon: Icons.folder_off_rounded, text: "Der Ordner ist leer") : LoaderOverlay(
child: RefreshIndicator(
onRefresh: () {
_query();
diff --git a/lib/view/pages/more/message/message.dart b/lib/view/pages/more/message/message.dart
index 82b5e31..162f3fa 100644
--- a/lib/view/pages/more/message/message.dart
+++ b/lib/view/pages/more/message/message.dart
@@ -1,5 +1,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:marianum_mobile/widget/loadingSpinner.dart';
import 'package:provider/provider.dart';
import '../../../../api/mhsl/message/getMessages/getMessagesResponse.dart';
@@ -30,7 +31,7 @@ class _MessageState extends State {
title: const Text("Marianum Message"),
),
body: Consumer(builder: (context, value, child) {
- if(value.primaryLoading()) return const Center(child: CircularProgressIndicator());
+ if(value.primaryLoading()) return const LoadingSpinner();
return RefreshIndicator(
child: ListView.builder(
diff --git a/lib/view/pages/talk/chatList.dart b/lib/view/pages/talk/chatList.dart
index 6f40e97..2b36c5b 100644
--- a/lib/view/pages/talk/chatList.dart
+++ b/lib/view/pages/talk/chatList.dart
@@ -3,6 +3,7 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:marianum_mobile/api/marianumcloud/talk/createRoom/createRoomParams.dart';
import 'package:marianum_mobile/widget/confirmDialog.dart';
+import 'package:marianum_mobile/widget/loadingSpinner.dart';
import 'package:provider/provider.dart';
import '../../../api/marianumcloud/talk/createRoom/createRoom.dart';
@@ -78,9 +79,7 @@ class _ChatListState extends State {
body: Consumer(
builder: (context, data, child) {
- if(data.primaryLoading()) {
- return const Center(child: CircularProgressIndicator());
- }
+ if(data.primaryLoading()) return const LoadingSpinner();
latestData = data;
diff --git a/lib/view/pages/talk/chatView.dart b/lib/view/pages/talk/chatView.dart
index f9ce0ba..9dfe68d 100644
--- a/lib/view/pages/talk/chatView.dart
+++ b/lib/view/pages/talk/chatView.dart
@@ -2,6 +2,7 @@
import 'package:flutter/material.dart';
import 'package:jiffy/jiffy.dart';
import 'package:loader_overlay/loader_overlay.dart';
+import 'package:marianum_mobile/widget/loadingSpinner.dart';
import 'package:provider/provider.dart';
import '../../../api/marianumcloud/talk/chat/getChatResponse.dart';
@@ -96,7 +97,7 @@ class _ChatViewState extends State {
)
),
child: LoaderOverlay(
- child: data.primaryLoading() ? const Center(child: CircularProgressIndicator()) : Column(
+ child: data.primaryLoading() ? const LoadingSpinner() : Column(
children: [
Expanded(
child: ListView(
diff --git a/lib/view/pages/timetable/timetable.dart b/lib/view/pages/timetable/timetable.dart
index 6e254fb..0b6a38c 100644
--- a/lib/view/pages/timetable/timetable.dart
+++ b/lib/view/pages/timetable/timetable.dart
@@ -2,6 +2,7 @@
import 'dart:developer';
import 'package:flutter/material.dart';
+import 'package:marianum_mobile/widget/loadingSpinner.dart';
import 'package:provider/provider.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';
@@ -62,7 +63,7 @@ class _TimetableState extends State {
),
body: Consumer(
builder: (context, value, child) {
- if(value.primaryLoading()) return const Placeholder();
+ if(value.primaryLoading()) return const LoadingSpinner();
GetHolidaysResponse holidays = value.getHolidaysResponse;
diff --git a/lib/widget/loadingSpinner.dart b/lib/widget/loadingSpinner.dart
index e39236a..fcb9fb3 100644
--- a/lib/widget/loadingSpinner.dart
+++ b/lib/widget/loadingSpinner.dart
@@ -1,4 +1,6 @@
+import 'dart:async';
+
import 'package:flutter/material.dart';
class LoadingSpinner extends StatefulWidget {
@@ -9,21 +11,39 @@ class LoadingSpinner extends StatefulWidget {
}
class _LoadingSpinnerState extends State {
+ bool textVisible = false;
+ late Timer timer;
+
+ @override
+ void initState() {
+ timer = Timer(const Duration(seconds: 10), () {
+ setState(() {
+ textVisible = true;
+ });
+ });
+
+ super.initState();
+ }
+
@override
Widget build(BuildContext context) {
- return Dialog(
- child: Padding(
- padding: const EdgeInsets.all(20),
- child: Row(
- mainAxisSize: MainAxisSize.min,
- children: [
- CircularProgressIndicator(
- color: Theme.of(context).primaryColor,
- ),
- const Padding(padding: EdgeInsets.only(left: 15), child: Text("Daten abrufen...")),
- ],
- ),
+ return Center(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ const CircularProgressIndicator(),
+ Visibility(
+ visible: textVisible,
+ child: const Text("Bist du mit dem Internet verbunden?"),
+ ),
+ ],
),
);
}
+
+ @override
+ void dispose() {
+ timer.cancel();
+ super.dispose();
+ }
}
diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc
index f6f23bf..7299b5c 100644
--- a/linux/flutter/generated_plugin_registrant.cc
+++ b/linux/flutter/generated_plugin_registrant.cc
@@ -6,9 +6,13 @@
#include "generated_plugin_registrant.h"
+#include
#include
void fl_register_plugins(FlPluginRegistry* registry) {
+ g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
+ fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
+ file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake
index f16b4c3..786ff5c 100644
--- a/linux/flutter/generated_plugins.cmake
+++ b/linux/flutter/generated_plugins.cmake
@@ -3,6 +3,7 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
+ file_selector_linux
url_launcher_linux
)
diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift
index 7026e66..9d5f78f 100644
--- a/macos/Flutter/GeneratedPluginRegistrant.swift
+++ b/macos/Flutter/GeneratedPluginRegistrant.swift
@@ -6,6 +6,7 @@ import FlutterMacOS
import Foundation
import device_info_plus
+import file_selector_macos
import package_info
import path_provider_foundation
import shared_preferences_foundation
@@ -15,6 +16,7 @@ import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
+ FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
FLTPackageInfoPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
diff --git a/pubspec.yaml b/pubspec.yaml
index f994d91..e9ce79a 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
-version: 1.0.0+3
+version: 0.0.1+4
environment:
sdk: '>=2.18.4 <3.0.0'
diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc
index 9871f6b..779f0ee 100644
--- a/windows/flutter/generated_plugin_registrant.cc
+++ b/windows/flutter/generated_plugin_registrant.cc
@@ -6,10 +6,13 @@
#include "generated_plugin_registrant.h"
+#include
#include
#include
void RegisterPlugins(flutter::PluginRegistry* registry) {
+ FileSelectorWindowsRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("FileSelectorWindows"));
SyncfusionPdfviewerWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SyncfusionPdfviewerWindowsPlugin"));
UrlLauncherWindowsRegisterWithRegistrar(
diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake
index 2487723..3757972 100644
--- a/windows/flutter/generated_plugins.cmake
+++ b/windows/flutter/generated_plugins.cmake
@@ -3,6 +3,7 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
+ file_selector_windows
syncfusion_pdfviewer_windows
url_launcher_windows
)