From 545f9d6650041300898c9f793bb94b744227c3f4 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Wed, 7 Aug 2024 17:50:52 +0200 Subject: [PATCH] make fast ui ... work somehow --- .../newplayer/ui/videoplayer/GestureUI.kt | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt index aec3ce7..00b43c4 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt @@ -88,10 +88,10 @@ fun GestureUI( }, onMultiTapFinished = fastSeekFinished ) { - FadedAnimationForSeekFeedback(fastSeekSeconds, backwards = true) { + FadedAnimationForSeekFeedback(fastSeekSeconds, backwards = true) { fastSeekSecondsToDisplay -> Box(modifier = Modifier.fillMaxSize()) { FastSeekVisualFeedback( - seconds = -fastSeekSeconds, + seconds = -fastSeekSecondsToDisplay, backwards = true, modifier = Modifier.align(Alignment.CenterEnd) ) @@ -117,11 +117,11 @@ fun GestureUI( onMultiTap = fastSeek, onMultiTapFinished = fastSeekFinished ) { - FadedAnimationForSeekFeedback(fastSeekSeconds) { + FadedAnimationForSeekFeedback(fastSeekSeconds) { fastSeekSecondsToDisplay -> Box(modifier = Modifier.fillMaxSize()) { FastSeekVisualFeedback( modifier = Modifier.align(Alignment.CenterStart), - seconds = fastSeekSeconds, + seconds = fastSeekSecondsToDisplay, backwards = false ) } @@ -150,11 +150,11 @@ fun GestureUI( onMultiTapFinished = fastSeekFinished, onMovement = handleDownwardMovement ) { - FadedAnimationForSeekFeedback(fastSeekSeconds, backwards = true) { + FadedAnimationForSeekFeedback(fastSeekSeconds, backwards = true) { fastSeekSecondsToDisplay -> Box(modifier = Modifier.fillMaxSize()) { FastSeekVisualFeedback( modifier = Modifier.align(Alignment.Center), - seconds = -fastSeekSeconds, + seconds = -fastSeekSecondsToDisplay, backwards = true ) } @@ -169,11 +169,11 @@ fun GestureUI( onMultiTap = fastSeek, onMultiTapFinished = fastSeekFinished ) { - FadedAnimationForSeekFeedback(fastSeekSeconds) { + FadedAnimationForSeekFeedback(fastSeekSeconds) { fastSeekSecondsToDisplay -> Box(modifier = Modifier.fillMaxSize()) { FastSeekVisualFeedback( modifier = Modifier.align(Alignment.Center), - seconds = fastSeekSeconds, + seconds = fastSeekSecondsToDisplay, backwards = false ) } @@ -189,9 +189,13 @@ fun GestureUI( fun FadedAnimationForSeekFeedback( fastSeekSeconds: Int, backwards: Boolean = false, - content: @Composable () -> Unit + content: @Composable (fastSeekSecondsToDisplay:Int) -> Unit ) { + var lastSecondsValue by remember { + mutableStateOf(0) + } + val vissible = if (backwards) { fastSeekSeconds < 0 } else { @@ -204,6 +208,13 @@ fun FadedAnimationForSeekFeedback( fastSeekSeconds < 0 } + val valueToDisplay = if(vissible) { + lastSecondsValue = fastSeekSeconds + fastSeekSeconds + } else { + lastSecondsValue + } + if (!disapearEmediatly) { AnimatedVisibility( visible = vissible, @@ -212,7 +223,7 @@ fun FadedAnimationForSeekFeedback( animationSpec = tween(SEEK_ANIMATION_FADE_OUT) ) ) { - content() + content(valueToDisplay) } } } @@ -248,7 +259,7 @@ fun FullscreenGestureUIPreviewInteractive() { } VideoPlayerTheme { - Surface(modifier = Modifier.wrapContentSize(), color = Color.DarkGray) { + Surface(modifier = Modifier.wrapContentSize(), color = Color.Black) { GestureUI( modifier = Modifier, hideUi = { },