wake lock implemented

This commit is contained in:
Constantin Leue
2026-08-03 21:26:36 +02:00
parent 5dfd28c56b
commit 7b198e1755
5 changed files with 55 additions and 6 deletions
+21 -6
View File
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
import '../app_mode/app_mode_cubit.dart'; import '../app_mode/app_mode_cubit.dart';
import 'screens/fly/fly_screen.dart'; import 'screens/fly/fly_screen.dart';
@@ -18,12 +19,26 @@ class AppShell extends StatelessWidget {
final mode = context.select((AppModeCubit c) => c.state.mode); final mode = context.select((AppModeCubit c) => c.state.mode);
final screen = mode == AppMode.fly ? const FlyScreen() : const PlanScreen(); final screen = mode == AppMode.fly ? const FlyScreen() : const PlanScreen();
return Scaffold( return BlocListener<AppModeCubit, AppModeState>(
body: Stack( listenWhen: (previous, current) => previous.mode != current.mode,
children: [ listener: (context, state) {
Positioned.fill(child: screen), // Nur FLAG_KEEP_SCREEN_ON, kein PowerManager.WakeLock (Doku 4.20
const Align(alignment: Alignment.topCenter, child: TopModeBar()), // deckt den Foreground-Service fuer Hintergrund-Telemetrie separat
], // ab). Android-Empfehlung: an die Activity-Sichtbarkeit gebunden,
// keine Permission, kein manuelles Leak-Risiko.
if (state.mode == AppMode.fly) {
WakelockPlus.enable();
} else {
WakelockPlus.disable();
}
},
child: Scaffold(
body: Stack(
children: [
Positioned.fill(child: screen),
const Align(alignment: Alignment.topCenter, child: TopModeBar()),
],
),
), ),
); );
} }
+32
View File
@@ -632,6 +632,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.0" version: "2.2.0"
package_info_plus:
dependency: transitive
description:
name: package_info_plus
sha256: "127e1751e37ffb2ff4658beeaca77bad0c27bf5f932bd3a501c2296926d4b481"
url: "https://pub.dev"
source: hosted
version: "10.2.1"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
sha256: db762cb2f4f25ee60fb6359773861b0f199e00b90d237bd85a76a1e806b46ef4
url: "https://pub.dev"
source: hosted
version: "4.1.0"
path: path:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -1125,6 +1141,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "15.2.0" version: "15.2.0"
wakelock_plus:
dependency: "direct main"
description:
name: wakelock_plus
sha256: "7253bca0fcf40d8413ddfcf4d2a1fa0a82475e79be25a4f2c564b695c9351486"
url: "https://pub.dev"
source: hosted
version: "1.7.0"
wakelock_plus_platform_interface:
dependency: transitive
description:
name: wakelock_plus_platform_interface
sha256: "0618d1799f0b28bcf98255b4ee8313e6fc4d38589dc4ee5fe5840d57d1aff6da"
url: "https://pub.dev"
source: hosted
version: "1.6.0"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
+1
View File
@@ -58,6 +58,7 @@ dependencies:
flutter_classic_bluetooth: ^0.1.6 flutter_classic_bluetooth: ^0.1.6
permission_handler: ^12.0.3 permission_handler: ^12.0.3
app_settings: ^8.0.3 app_settings: ^8.0.3
wakelock_plus: ^1.7.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
+1
View File
@@ -0,0 +1 @@
,AI/Consti,AI,03.08.2026 21:25,file:///C:/Users/Consti/AppData/Roaming/LibreOffice/4;
Binary file not shown.