loadDefaultPlaylist method
Load Default Playlist
- Attempts to restore saved playlist & index from storage
- If saved paths don't match provided paths, uses new paths (tracks changed)
- If nothing is saved and
shuffleis true, shuffles the playlist - Marks this channel as using the default playlist (persistent)
Parameters:
paths: List of asset paths for the playlistshuffle: Whether to shuffle on first load (default: false)
Implementation
Future<void> loadDefaultPlaylist(List<String> paths, {bool shuffle = false}) async {
_isUsingDefaultPlaylist = true;
final saved = _storage.getPlaylist();
final index = _storage.getIndex();
// Check if saved playlist matches the new paths (detect track changes)
final savedMatchesPaths = saved != null &&
saved.length == paths.length &&
saved.every((p) => paths.contains(p));
if (saved != null && saved.isNotEmpty && index != null && savedMatchesPaths) {
// Restore from storage only if paths match
_currentPlaylist = saved;
_index = index;
} else {
// Tracks changed or no saved data - use new paths
_currentPlaylist = List.from(paths);
if (shuffle) {
_currentPlaylist.shuffle();
}
_index = 0;
_storage.save(_currentPlaylist, _index);
}
_defaultPlaylist = paths;
}