Fix racecondition watchlater adds

This commit is contained in:
Kelvin 2025-05-06 13:23:00 +02:00
commit 3cf8abd409

View file

@ -772,8 +772,8 @@ class StateSync {
for(video in pack.videos) { for(video in pack.videos) {
val existing = allExisting.firstOrNull { it.url == video.url }; val existing = allExisting.firstOrNull { it.url == video.url };
val time = if(pack.videoAdds != null && pack.videoAdds.containsKey(video.url)) OffsetDateTime.ofInstant(Instant.ofEpochSecond(pack.videoAdds[video.url] ?: 0), ZoneOffset.UTC) else OffsetDateTime.MIN; val time = if(pack.videoAdds != null && pack.videoAdds.containsKey(video.url)) OffsetDateTime.ofInstant(Instant.ofEpochSecond(pack.videoAdds[video.url] ?: 0), ZoneOffset.UTC) else OffsetDateTime.MIN;
val removalTime = StatePlaylists.instance.getWatchLaterRemovalTime(video.url) ?: OffsetDateTime.MIN;
if(existing == null) { if(existing == null && time > removalTime) {
StatePlaylists.instance.addToWatchLater(video, false); StatePlaylists.instance.addToWatchLater(video, false);
if(time > OffsetDateTime.MIN) if(time > OffsetDateTime.MIN)
StatePlaylists.instance.setWatchLaterAddTime(video.url, time); StatePlaylists.instance.setWatchLaterAddTime(video.url, time);