diff --git a/app/src/main/java/com/bnyro/clock/ui/screens/StopwatchScreen.kt b/app/src/main/java/com/bnyro/clock/ui/screens/StopwatchScreen.kt index 71f437a8..0179e1fe 100644 --- a/app/src/main/java/com/bnyro/clock/ui/screens/StopwatchScreen.kt +++ b/app/src/main/java/com/bnyro/clock/ui/screens/StopwatchScreen.kt @@ -29,11 +29,13 @@ import androidx.compose.material3.LargeFloatingActionButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.bnyro.clock.R @@ -56,7 +58,9 @@ fun StopwatchScreen(onClickSettings: () -> Unit, stopwatchModel: StopwatchModel) val timeStampsState = rememberLazyListState() TopBarScaffold(title = stringResource(R.string.stopwatch), onClickSettings) { pv -> Column( - modifier = Modifier.fillMaxSize().padding(pv), + modifier = Modifier + .fillMaxSize() + .padding(pv), horizontalAlignment = Alignment.CenterHorizontally ) { Box( @@ -187,4 +191,18 @@ fun StopwatchScreen(onClickSettings: () -> Unit, stopwatchModel: StopwatchModel) } } } + if (stopwatchModel.scheduledObject.state.value == WatchState.RUNNING) + KeepScreenOn() } + +//https://stackoverflow.com/a/71293123/9652621 +@Composable +fun KeepScreenOn() { + val currentView = LocalView.current + DisposableEffect(Unit) { + currentView.keepScreenOn = true + onDispose { + currentView.keepScreenOn = false + } + } +} \ No newline at end of file