diff options
Diffstat (limited to 'lib/widgets/badge_app.dart')
-rw-r--r-- | lib/widgets/badge_app.dart | 16 |
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(); + } } |