Add audio loading spinner
Summary
- Show a spinning indicator when a track is buffering over a slow connection
- Spinner appears in the track row, tracklist summary, and play/pause button
- Uses the
onplayingaudio event to clear loading state once playback begins - Applied to both list view and random view (including crossfade)
Test plan
-
Open app on a slow connection (wifi vs ethernet) -
Click a track and verify spinner appears while buffering -
Spinner should replace the stop icon in the track row -
Play/pause button in tracklist header should show spinner -
Collapsed tracklist summary should show spinner next to track name -
Spinner disappears once audio starts playing -
Verify in both list view and random view