diff --git a/README.md b/README.md index 43d53bf..22db967 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,7 @@ Die App lässt sich als Android- und iOS App ausführen und zu Debugzwecken eben ## App bedienen -Um die App nutzen zu können, müssen Settings eingelesen werden. Dazu kann entweder ein in die App integrierter QR-Code Scanner (mit dem beigefügten [QR-Code](./gruppe1_QR.png)) benutzt werden, oder zu Debugzwecken mit dem dafür vorgesehenen Button auf der Scannerseite über eine lokale JSON-Datei. -Es ist zu beachten, dass das verwendete QR-Code Scanner Package für Mobilgeräte optimiert ist. Deshalb kann es zu Abstürzen beim Verwenden des Scanners mit der Web-Version kommen. -Beim Verwenden der Web-Version sollten die Settings mit der lokalen JSON-Datei eingelesen werden. -Der Button zum Einlesen der lokalen JSON-Datei kann über die Variable bool useLocalConfig in der Datei [globals.dart](./lib/globals.dart) ein- und ausgeblendet werden. +Um die App nutzen zu können, müssen Settings eingelesen werden. Dazu kann entweder ein in die App integrierter QR-Code Scanner (mit dem beigefügten [QR-Code](./gruppe1_QR.png)) benutzt werden, oder zu Debugzwecken über eine lokale JSON-Datei. Es ist zu beachten, dass das verwendete QR-Code Scanner Package für Mobilgeräte optimiert ist. Deshalb kann es zu Abstürzen beim Verwenden des Scanners mit der Web-Version kommen. Beim Verwenden der Web-Version sollten die Settings mit der lokalen JSON-Datei eingelesen werden. Um beim Klick auf den Scan-Button die lokale JSON-Datei einzulesen, muss in der Datei [globals.dart](./lib/globals.dart) die Variable bool useLocalConfig = true; gesetzt werden. ## Authoren diff --git a/lib/pages/scanner_page.dart b/lib/pages/scanner_page.dart index eee7dd0..ef417f7 100644 --- a/lib/pages/scanner_page.dart +++ b/lib/pages/scanner_page.dart @@ -1,13 +1,9 @@ -import 'package:awesome_dialog/awesome_dialog.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:smoke_cess_app/services/export_service.dart'; -import 'package:smoke_cess_app/services/settings_service.dart'; -import 'package:smoke_cess_app/services/notification_service.dart'; import 'package:smoke_cess_app/widgets/buttons/text_icon_button.dart'; import 'package:smoke_cess_app/widgets/scanner.dart'; import '../providers/settings_provider.dart'; -import '../globals.dart' as globals; class ScannerPage extends StatelessWidget { const ScannerPage({super.key}); @@ -17,21 +13,6 @@ class ScannerPage extends StatelessWidget { exportService.exportData(); } - void loadJSON(BuildContext context) async { - SettingsProvider settingsModel = context.read(); - await loadSettingsFromLocalJSON(); - settingsModel.initSettings(); - NotificationService().setAllNotifications(); - if (context.mounted) { - AwesomeDialog( - context: context, - dialogType: DialogType.success, - title: 'Geschafft', - desc: 'Die Einstellung wurden erfolgreich gespeichert', - ).show(); - } - } - @override Widget build(BuildContext context) { SettingsProvider settingsProvider = context.watch(); @@ -47,13 +28,6 @@ class ScannerPage extends StatelessWidget { text: 'Export', onPressed: ExportService().exportData, iconData: Icons.upload), - if (globals.useLocalConfig && !settingsProvider.scanning) - ElevatedButton( - style: ElevatedButton.styleFrom( - textStyle: const TextStyle(fontSize: 20)), - onPressed: () => loadJSON(context), - child: const Text('Read JSON'), - ), ], )); } diff --git a/lib/providers/audio_provider.dart b/lib/providers/audio_provider.dart index a141cb2..a706544 100644 --- a/lib/providers/audio_provider.dart +++ b/lib/providers/audio_provider.dart @@ -42,6 +42,7 @@ class AudioProvider extends ChangeNotifier { _audioPlayer.play(_beepSoundSource); _onCompleteSubscription = _audioPlayer.onPlayerComplete.listen((event) { _audioPlayer.play(source); + _audioPlayer.setReleaseMode(ReleaseMode.loop); }); } } diff --git a/lib/widgets/scanner.dart b/lib/widgets/scanner.dart index 19864a8..0adb5cd 100644 --- a/lib/widgets/scanner.dart +++ b/lib/widgets/scanner.dart @@ -8,6 +8,7 @@ import 'package:smoke_cess_app/services/settings_service.dart'; import 'package:smoke_cess_app/widgets/buttons/text_icon_button.dart'; import '../providers/settings_provider.dart'; import '../services/notification_service.dart'; +import '../globals.dart' as globals; class MyScanner extends StatelessWidget { const MyScanner({super.key}); @@ -57,6 +58,21 @@ class MyScanner extends StatelessWidget { } } + void loadJSON(BuildContext context) async { + SettingsProvider settingsModel = context.read(); + await loadSettingsFromLocalJSON(); + settingsModel.initSettings(); + NotificationService().setAllNotifications(); + if (context.mounted) { + AwesomeDialog( + context: context, + dialogType: DialogType.success, + title: 'Geschafft', + desc: 'Die Einstellung wurden erfolgreich gespeichert', + ).show(); + } + } + return settingsProvider.scanning ? Expanded( child: Stack( @@ -79,7 +95,9 @@ class MyScanner extends StatelessWidget { )) : TextIconButton( text: "Scan", - onPressed: () => settingsProvider.scanning = true, + onPressed: globals.useLocalConfig + ? () => loadJSON(context) + : () => settingsProvider.scanning = true, iconData: Icons.qr_code_scanner_outlined); } }