Merge remote-tracking branch 'origin/develop' into develop-bloc-holidays
16
.gitignore
vendored
@ -48,14 +48,14 @@ lib/generated_plugin_registrant.dart
|
|||||||
#pubspec.lock
|
#pubspec.lock
|
||||||
|
|
||||||
# Android related
|
# Android related
|
||||||
**/android/**/gradle-wrapper.jar
|
materials/screenshots/android/**/gradle-wrapper.jar
|
||||||
**/android/.gradle
|
materials/screenshots/android/.gradle
|
||||||
**/android/captures/
|
materials/screenshots/android/captures/
|
||||||
**/android/gradlew
|
materials/screenshots/android/gradlew
|
||||||
**/android/gradlew.bat
|
materials/screenshots/android/gradlew.bat
|
||||||
**/android/key.properties
|
materials/screenshots/android/key.properties
|
||||||
**/android/local.properties
|
materials/screenshots/android/local.properties
|
||||||
**/android/**/GeneratedPluginRegistrant.java
|
materials/screenshots/android/**/GeneratedPluginRegistrant.java
|
||||||
|
|
||||||
# iOS/XCode related
|
# iOS/XCode related
|
||||||
**/ios/**/*.mode1v3
|
**/ios/**/*.mode1v3
|
||||||
|
29
assets/ca/lets-encrypt-r10.pem
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
Before Width: | Height: | Size: 185 KiB |
Before Width: | Height: | Size: 154 KiB |
@ -20,7 +20,7 @@ class NotifyRegister extends MhslApi<void> {
|
|||||||
@override
|
@override
|
||||||
Future<http.Response> request(Uri uri) {
|
Future<http.Response> request(Uri uri) {
|
||||||
var requestString = jsonEncode(params.toJson());
|
var requestString = jsonEncode(params.toJson());
|
||||||
log(requestString);
|
log('register at push proxy with username ${params.username}');
|
||||||
return http.post(uri, body: requestString);
|
return http.post(uri, body: requestString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ class UpdateUserIndex extends MhslApi<void> {
|
|||||||
@override
|
@override
|
||||||
Future<http.Response> request(Uri uri) {
|
Future<http.Response> request(Uri uri) {
|
||||||
var data = jsonEncode(params.toJson());
|
var data = jsonEncode(params.toJson());
|
||||||
log('Updating userindex:\n $data');
|
log('Updating userindex: ${data.length}');
|
||||||
return http.post(uri, body: data);
|
return http.post(uri, body: data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,22 +34,27 @@ import 'view/login/login.dart';
|
|||||||
import 'widget/placeholderView.dart';
|
import 'widget/placeholderView.dart';
|
||||||
|
|
||||||
Future<void> main() async {
|
Future<void> main() async {
|
||||||
|
log('MarianumMobile started');
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
addCertificateAsTrusted(ByteData certificate) => SecurityContext.defaultContext.setTrustedCertificatesBytes(certificate.buffer.asUint8List());
|
||||||
|
|
||||||
var initialisationTasks = [
|
var initialisationTasks = [
|
||||||
Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)
|
Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)
|
||||||
.then((value) async => log("Firebase token: ${await FirebaseMessaging.instance.getToken() ?? "Error: no Firebase token!"}"))
|
.then((value) async => log("Firebase token: ${await FirebaseMessaging.instance.getToken() ?? "Error: no Firebase token!"}"))
|
||||||
.onError((error, stackTrace) => log('Error initializing Firebase: $error')),
|
.onError((error, stackTrace) => log('Error initializing Firebase: $error')),
|
||||||
|
|
||||||
PlatformAssetBundle().load('assets/ca/lets-encrypt-r3.pem')
|
PlatformAssetBundle().load('assets/ca/lets-encrypt-r3.pem').then(addCertificateAsTrusted),
|
||||||
.then((certificate) => SecurityContext.defaultContext.setTrustedCertificatesBytes(certificate.buffer.asUint8List())),
|
PlatformAssetBundle().load('assets/ca/lets-encrypt-r10.pem').then(addCertificateAsTrusted),
|
||||||
|
|
||||||
Future(() async {
|
Future(() async {
|
||||||
await HydratedStorage.build(storageDirectory: await getTemporaryDirectory()).then((storage) => HydratedBloc.storage = storage);
|
await HydratedStorage.build(storageDirectory: await getTemporaryDirectory()).then((storage) => HydratedBloc.storage = storage);
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
log('starting app initialisation...');
|
||||||
await Future.wait(initialisationTasks);
|
await Future.wait(initialisationTasks);
|
||||||
|
log('app initialisation done!');
|
||||||
|
|
||||||
if(kReleaseMode) {
|
if(kReleaseMode) {
|
||||||
ErrorWidget.builder = (error) => PlaceholderView(
|
ErrorWidget.builder = (error) => PlaceholderView(
|
||||||
@ -58,6 +63,7 @@ Future<void> main() async {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log('running app...');
|
||||||
runApp(
|
runApp(
|
||||||
MultiProvider(
|
MultiProvider(
|
||||||
providers: [
|
providers: [
|
||||||
|
@ -24,6 +24,7 @@ class NotifyUpdater {
|
|||||||
NotifyUpdater.registerToServer();
|
NotifyUpdater.registerToServer();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
static Future<void> registerToServer() async {
|
static Future<void> registerToServer() async {
|
||||||
var fcmToken = await FirebaseMessaging.instance.getToken();
|
var fcmToken = await FirebaseMessaging.instance.getToken();
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
BIN
materials/screenshots/android/1.png
Normal file
After Width: | Height: | Size: 278 KiB |
BIN
materials/screenshots/android/2.png
Normal file
After Width: | Height: | Size: 289 KiB |
BIN
materials/screenshots/android/3.png
Normal file
After Width: | Height: | Size: 279 KiB |
BIN
materials/screenshots/android/4.png
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
materials/screenshots/android/5.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
materials/screenshots/android/6.png
Normal file
After Width: | Height: | Size: 96 KiB |
BIN
materials/screenshots/android/7.png
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
materials/screenshots/android/8.png
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
materials/screenshots/ios/6-5-inch/1.jpg
Normal file
After Width: | Height: | Size: 176 KiB |
BIN
materials/screenshots/ios/6-5-inch/3.jpg
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
materials/screenshots/ios/6-5-inch/4.jpg
Normal file
After Width: | Height: | Size: 100 KiB |
BIN
materials/screenshots/ios/6-5-inch/5.jpg
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
materials/screenshots/ios/6-5-inch/6.jpg
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
materials/screenshots/ios/6-5-inch/7.jpg
Normal file
After Width: | Height: | Size: 280 KiB |
BIN
materials/screenshots/ios/6-5-inch/8.jpg
Normal file
After Width: | Height: | Size: 111 KiB |
BIN
materials/screenshots/ipados/13-inch/1.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
materials/screenshots/ipados/13-inch/2.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
materials/screenshots/ipados/13-inch/3.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
materials/screenshots/ipados/13-inch/4.png
Normal file
After Width: | Height: | Size: 436 KiB |
BIN
materials/screenshots/ipados/13-inch/5.png
Normal file
After Width: | Height: | Size: 3.2 MiB |
BIN
materials/screenshots/ipados/13-inch/6.png
Normal file
After Width: | Height: | Size: 345 KiB |
BIN
materials/screenshots/ipados/13-inch/7.png
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
materials/screenshots/ipados/13-inch/8.png
Normal file
After Width: | Height: | Size: 490 KiB |