Merge pull request #537 from barrydeen/feat/live-stream-keep-screen-on

feat(live): keep screen awake while watching a live stream
This commit is contained in:
Barry Deen
2026-05-15 21:52:10 -04:00
committed by GitHub
@@ -53,6 +53,7 @@ import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
@@ -147,6 +148,15 @@ fun LiveStreamScreen(
}
}
val context = LocalContext.current
DisposableEffect(context) {
val window = context.findHostActivity()?.window
window?.addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
onDispose {
window?.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}
}
Column(modifier = Modifier.fillMaxSize()) {
// Top bar
TopAppBar(
@@ -1088,3 +1098,12 @@ private fun formatZapSats(sats: Long): String = when {
sats >= 1_000 -> "${"%.1f".format(sats / 1_000.0)}k"
else -> sats.toString()
}
private fun android.content.Context.findHostActivity(): android.app.Activity? {
var ctx: android.content.Context = this
while (ctx is android.content.ContextWrapper) {
if (ctx is android.app.Activity) return ctx
ctx = ctx.baseContext
}
return null
}