Skip to content

Commit 8a6bd9f

Browse files
committed
#351 keep screen on while video is playing
1 parent d6653c5 commit 8a6bd9f

5 files changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.daniebeler.pfpixelix.utils
2+
3+
import android.view.WindowManager
4+
import androidx.activity.compose.LocalActivity
5+
import androidx.compose.runtime.Composable
6+
import androidx.compose.runtime.DisposableEffect
7+
8+
@Composable
9+
actual fun KeepScreenOn() {
10+
val activity = LocalActivity.current
11+
DisposableEffect(Unit) {
12+
val window = activity?.window
13+
window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
14+
onDispose {
15+
window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
16+
}
17+
}
18+
}

app/src/commonMain/kotlin/com/daniebeler/pfpixelix/ui/composables/post/VideoAttachment.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import androidx.lifecycle.Lifecycle
2929
import androidx.lifecycle.LifecycleEventObserver
3030
import androidx.lifecycle.compose.LocalLifecycleOwner
3131
import com.daniebeler.pfpixelix.domain.model.MediaAttachment
32+
import com.daniebeler.pfpixelix.utils.KeepScreenOn
3233
import io.github.kdroidfilter.composemediaplayer.VideoPlayerSurface
3334
import io.github.kdroidfilter.composemediaplayer.rememberVideoPlayerState
3435

@@ -48,6 +49,10 @@ fun VideoAttachment(
4849

4950
var videoFrameIsVisible by remember { mutableStateOf(false) }
5051

52+
if (player.isPlaying) {
53+
KeepScreenOn()
54+
}
55+
5156
Column {
5257
Box(Modifier.clickable {
5358
if (player.isPlaying) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.daniebeler.pfpixelix.utils
2+
3+
import androidx.compose.runtime.Composable
4+
5+
@Composable
6+
expect fun KeepScreenOn()
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.daniebeler.pfpixelix.utils
2+
3+
import androidx.compose.runtime.Composable
4+
import androidx.compose.runtime.DisposableEffect
5+
import platform.UIKit.UIApplication
6+
7+
@Composable
8+
actual fun KeepScreenOn() {
9+
DisposableEffect(Unit) {
10+
val sharedApp = UIApplication.sharedApplication
11+
sharedApp.idleTimerDisabled = true
12+
13+
onDispose {
14+
sharedApp.idleTimerDisabled = false
15+
}
16+
}
17+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.daniebeler.pfpixelix.utils
2+
3+
import androidx.compose.runtime.Composable
4+
5+
@Composable
6+
actual fun KeepScreenOn() {}

0 commit comments

Comments
 (0)