From 32ec25af14e463336dbfa8070f6f30ed62308d8b Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Thu, 11 Apr 2024 13:02:46 +0200 Subject: [PATCH] Logging Lifecycle eingebaut --- lib/main.dart | 37 +++++++++++++++++++++++++++++++------ pubspec.lock | 8 ++++++++ pubspec.yaml | 1 + 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 50fa6fa..df294e9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:geolocator/geolocator.dart'; +import 'package:is_lock_screen/is_lock_screen.dart'; import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; import 'package:stadtbote/messages/pop_content_view_message.dart'; @@ -54,12 +55,8 @@ void _traceUncaughtExceptions(Object error, StackTrace stackTrace) { Util.logException('Stack-Trace: $stackTrace'); } -class MyApp extends StatelessWidget { - MyApp({super.key}) { - MqttCore.setup(); - - _startLocationService(); - } +class MyApp extends StatefulWidget { + MyApp({super.key}); static late Isar isarInstance; @@ -67,6 +64,34 @@ class MyApp extends StatelessWidget { static bool suppressAcceptDialog = false; + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State with WidgetsBindingObserver { + @override + void initState() { + WidgetsBinding.instance.addObserver(this); + + MqttCore.setup(); + + _startLocationService(); + + super.initState(); + } + + @override + void dispose() { + WidgetsBinding.instance.removeObserver(this); + super.dispose(); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) async { + super.didChangeAppLifecycleState(state); + Util.logInfo('Lifecylcle changes: $state'); + } + @override Widget build(BuildContext context) { return MaterialApp( diff --git a/pubspec.lock b/pubspec.lock index c859211..becbe0a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -768,6 +768,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + is_lock_screen: + dependency: "direct main" + description: + name: is_lock_screen + sha256: "7f45c22b1bb4bd9849aa699bc45b5b9473ada262a4266e1d7d51babdf50c0c83" + url: "https://pub.dev" + source: hosted + version: "2.0.0" isar: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index a84e975..4005f41 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -70,6 +70,7 @@ dependencies: flutter_launcher_icons: ^0.13.1 package_info_plus: ^5.0.1 device_info_plus: ^9.1.2 + is_lock_screen: ^2.0.0 dev_dependencies: flutter_test: