loadDefaultPlaylist method

Future<void> loadDefaultPlaylist(
  1. List<String> paths, {
  2. bool shuffle = false,
})

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 shuffle is true, shuffles the playlist
  • Marks this channel as using the default playlist (persistent)

Parameters:

  • paths: List of asset paths for the playlist
  • shuffle: 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;
}