diff --git a/BUGS.md b/BUGS.md index a3ef43f..85ac7a3 100644 --- a/BUGS.md +++ b/BUGS.md @@ -23,6 +23,8 @@ ## Nice-to +- beat metadata is handled by the app, currently. The handling should move into "jukebox". + - add a test for /playlists/ but obfuscate the IDs and user id - TrackFileMatching, scoreAgainstLocalHints diff --git a/app/src/main/java/at/lockstep/player/ui/AnnotationScreen.kt b/app/src/main/java/at/lockstep/player/ui/AnnotationScreen.kt index e06e5c6..80d8343 100644 --- a/app/src/main/java/at/lockstep/player/ui/AnnotationScreen.kt +++ b/app/src/main/java/at/lockstep/player/ui/AnnotationScreen.kt @@ -91,17 +91,21 @@ fun AnnotationRoute( var playlistDisplayName by remember { mutableStateOf("playlist") } LaunchedEffect(playlistId) { - playlistDisplayName = viewModel.getPlaylistDisplayName(playlistId) + val name = viewModel.getPlaylistDisplayName(playlistId) + playlistDisplayName = name + viewModel.fetchBeatsMetadataForPlaylist(playlistId, name) } - LaunchedEffect(playback, playlistId, playlistDisplayName, annotationSessionFolder) { + LaunchedEffect(playback, playlistId, annotationSessionFolder) { val service = playback ?: return@LaunchedEffect + val name = viewModel.getPlaylistDisplayName(playlistId) + playlistDisplayName = name service.trackBoundaryEvents.collect { event -> val snapshot = beatTimesMs.toList() beatTimesMs.clear() viewModel.persistBeatAnnotation( playlistId, - playlistDisplayName, + name, annotationSessionFolder, event, snapshot, diff --git a/app/src/main/java/at/lockstep/player/ui/NowPlayingScreen.kt b/app/src/main/java/at/lockstep/player/ui/NowPlayingScreen.kt index 8b1023d..d868fec 100644 --- a/app/src/main/java/at/lockstep/player/ui/NowPlayingScreen.kt +++ b/app/src/main/java/at/lockstep/player/ui/NowPlayingScreen.kt @@ -212,11 +212,9 @@ fun NowPlayingRoute( } LaunchedEffect(playlistId) { - playlistDisplayName = viewModel.getPlaylistDisplayName(playlistId) - } - - LaunchedEffect(playlistId, playlistDisplayName) { - viewModel.fetchBeatsMetadataForPlaylist(playlistId, playlistDisplayName) + val name = viewModel.getPlaylistDisplayName(playlistId) + playlistDisplayName = name + viewModel.fetchBeatsMetadataForPlaylist(playlistId, name) } LaunchedEffect(playback) { @@ -257,12 +255,14 @@ fun NowPlayingRoute( } } - LaunchedEffect(collectRunData, playback, playlistId, playlistDisplayName) { + LaunchedEffect(collectRunData, playback, playlistId) { if (!collectRunData) return@LaunchedEffect val service = playback ?: return@LaunchedEffect + val name = viewModel.getPlaylistDisplayName(playlistId) + playlistDisplayName = name service.trackBoundaryEvents.collect { event -> val snapshot = collector.snapshotAndClear() - viewModel.persistRunData(playlistId, playlistDisplayName, runSessionFolder, event, snapshot) + viewModel.persistRunData(playlistId, name, runSessionFolder, event, snapshot) } }