From d5e53e26399fdc8f23d30c61d2106a4cbdac1175 Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Sat, 6 Sep 2025 14:06:02 -0500 Subject: [PATCH] feat(map): keep screen on when location tracking is enabled (#3003) Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com> --- .../java/com/geeksville/mesh/ui/map/MapView.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/google/java/com/geeksville/mesh/ui/map/MapView.kt b/app/src/google/java/com/geeksville/mesh/ui/map/MapView.kt index e80741ebb..f0f557002 100644 --- a/app/src/google/java/com/geeksville/mesh/ui/map/MapView.kt +++ b/app/src/google/java/com/geeksville/mesh/ui/map/MapView.kt @@ -19,11 +19,13 @@ package com.geeksville.mesh.ui.map +import android.app.Activity import android.content.Intent import android.graphics.Canvas import android.graphics.Paint import android.location.Location import android.net.Uri +import android.view.WindowManager import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatDelegate @@ -349,6 +351,17 @@ fun MapView( var showClusterItemsDialog by remember { mutableStateOf?>(null) } + LaunchedEffect(isLocationTrackingEnabled) { + val activity = context as? Activity ?: return@LaunchedEffect + val window = activity.window + + if (isLocationTrackingEnabled) { + window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + } else { + window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + } + } + Scaffold { paddingValues -> Box(modifier = Modifier.fillMaxSize().padding(paddingValues)) { GoogleMap(