summaryrefslogtreecommitdiff
path: root/lib/widgets/badge_app.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets/badge_app.dart')
-rw-r--r--lib/widgets/badge_app.dart16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/widgets/badge_app.dart b/lib/widgets/badge_app.dart
index f4d1fcd..23c63aa 100644
--- a/lib/widgets/badge_app.dart
+++ b/lib/widgets/badge_app.dart
@@ -13,6 +13,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
+import 'dart:ui' show AppExitResponse;
+
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
import 'package:uvok_epaper_badge/widgets/scan_page.dart';
import 'package:flutter/material.dart';
@@ -20,7 +22,15 @@ import 'package:flutter/material.dart';
class BadgeApp extends StatelessWidget {
final ScannerController selectedScanner;
- const BadgeApp({super.key, required this.selectedScanner});
+ BadgeApp({super.key, required this.selectedScanner}) {
+ AppLifecycleListener(
+ onExitRequested: () async {
+ logger.i("Exit requested");
+ dispose();
+ return AppExitResponse.exit;
+ },
+ );
+ }
@override
Widget build(BuildContext context) {
@@ -47,4 +57,8 @@ class BadgeApp extends StatelessWidget {
home: ScanPage(title: 'Badge Scanner', deviceScanner: selectedScanner),
);
}
+
+ void dispose() {
+ selectedScanner.dispose();
+ }
}