From 24955aa213a7817b63ed8766966099cd9994c175 Mon Sep 17 00:00:00 2001 From: equationslayer12 <80574033+equationslayer12@users.noreply.github.com> Date: Sat, 3 Feb 2024 15:30:55 +0200 Subject: [PATCH] Store alternative source resources in cache; implements https://github.com/KRTirtho/spotube/issues/1195 https://github.com/KRTirtho/spotube/issues/1195 --- .../proxy_playlist/proxy_playlist_provider.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/provider/proxy_playlist/proxy_playlist_provider.dart b/lib/provider/proxy_playlist/proxy_playlist_provider.dart index ca0fb308..77cc297f 100644 --- a/lib/provider/proxy_playlist/proxy_playlist_provider.dart +++ b/lib/provider/proxy_playlist/proxy_playlist_provider.dart @@ -14,6 +14,7 @@ import 'package:spotube/models/local_track.dart'; import 'package:spotube/models/logger.dart'; import 'package:spotube/models/skip_segment.dart'; +import 'package:spotube/models/source_match.dart'; import 'package:spotube/provider/blacklist_provider.dart'; import 'package:spotube/provider/palette_provider.dart'; @@ -448,6 +449,18 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier audioPlayer.currentSource!, makeAppropriateSource(newTrack), ); + + // update cache: first remove track, then add the new source + await SourceMatch.box.delete(state.activeTrack?.id); + await SourceMatch.box.put( + newTrack.id, + SourceMatch( + id: newTrack.id!, + sourceType: SourceType.youtube, + createdAt: DateTime.now(), + sourceId: sibling.id, + ), + ); } }