From 37e4064533bcb96fc7e94e4e69ac00e568cdb5c6 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Wed, 3 Jul 2024 05:17:12 +0530 Subject: [PATCH] Cache total duration calculation --- .../java/org/schabi/newpipe/compose/playlist/Playlist.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/compose/playlist/Playlist.kt b/app/src/main/java/org/schabi/newpipe/compose/playlist/Playlist.kt index 9dceda9d8..429becb19 100644 --- a/app/src/main/java/org/schabi/newpipe/compose/playlist/Playlist.kt +++ b/app/src/main/java/org/schabi/newpipe/compose/playlist/Playlist.kt @@ -11,7 +11,9 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -40,7 +42,11 @@ import org.schabi.newpipe.viewmodels.PlaylistViewModel fun Playlist(playlistViewModel: PlaylistViewModel = viewModel()) { val playlistInfo by playlistViewModel.playlistInfo.collectAsState() val streams = playlistViewModel.streamItems.collectAsLazyPagingItems() - val totalDuration = streams.itemSnapshotList.sumOf { it!!.duration } + val totalDuration by remember { + derivedStateOf { + streams.itemSnapshotList.sumOf { it!!.duration } + } + } val context = LocalContext.current val onClick = { stream: StreamInfoItem ->