Add keep on screen feature on the Character Sheet page.

This commit is contained in:
Thomas Andres Gomez 2023-12-11 17:51:04 +01:00
parent dbd282a42a
commit 8c1d83402c
3 changed files with 22 additions and 3 deletions

View file

@ -27,7 +27,6 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.compositionLocalOf import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
@ -45,10 +44,10 @@ import dagger.hilt.android.AndroidEntryPoint
val NO_WINDOW_INSETS = WindowInsets(0, 0, 0, 0) val NO_WINDOW_INSETS = WindowInsets(0, 0, 0, 0)
val LocalActivity = staticCompositionLocalOf<Activity> { val LocalActivity = compositionLocalOf<Activity> {
error("Activity not available") error("Activity not available")
} }
val LocalSnack = staticCompositionLocalOf<SnackbarHostState> { val LocalSnack = compositionLocalOf<SnackbarHostState> {
error("SnackbarHostState not available") error("SnackbarHostState not available")
} }
val LocalRollOverlay = compositionLocalOf<BlurredRollOverlayHostState> { val LocalRollOverlay = compositionLocalOf<BlurredRollOverlayHostState> {

View file

@ -0,0 +1,17 @@
package com.pixelized.rplexicon.ui.composable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.ui.platform.LocalView
@Composable
fun KeepOnScreen() {
val currentView = LocalView.current
DisposableEffect(Unit) {
currentView.keepScreenOn = true
onDispose {
currentView.keepScreenOn = false
}
}
}

View file

@ -62,6 +62,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
import com.pixelized.rplexicon.LocalRollOverlay import com.pixelized.rplexicon.LocalRollOverlay
import com.pixelized.rplexicon.NO_WINDOW_INSETS import com.pixelized.rplexicon.NO_WINDOW_INSETS
import com.pixelized.rplexicon.R import com.pixelized.rplexicon.R
import com.pixelized.rplexicon.ui.composable.KeepOnScreen
import com.pixelized.rplexicon.ui.composable.Loader import com.pixelized.rplexicon.ui.composable.Loader
import com.pixelized.rplexicon.ui.composable.edit.HandleHitPointEditDialog import com.pixelized.rplexicon.ui.composable.edit.HandleHitPointEditDialog
import com.pixelized.rplexicon.ui.composable.error.HandleFetchError import com.pixelized.rplexicon.ui.composable.error.HandleFetchError
@ -235,6 +236,8 @@ fun CharacterSheetScreen(
BackHandler(enabled = overlay.isOverlayVisible) { BackHandler(enabled = overlay.isOverlayVisible) {
overlay.hideOverlay() overlay.hideOverlay()
} }
KeepOnScreen()
} }
} }