Port remove song of playlist from tempus ng (#457)

* feat: implement track removal from playlists with real-time UI updates

- Added 'Remove from playlist' option to song bottom sheet (appears only when inside a playlist)
- Implemented immediate UI refresh for track count and duration in playlist header
- Fixed a bug where shuffling for covers scrambled the actual playlist song order
- Improved PlaylistPageViewModel to clear stale data and handle isolated updates correctly
- Added dedicated success/failure messages for track removal in English and Italian
- Unified heart icon size to 14dp across all track list items

* fix: missing code from port process

The cherry-pick was missing the database getter
and the function to remove a song from a playlist

---------

Co-authored-by: beeetfarmer <176325048+beeetfarmer@users.noreply.github.com>
This commit is contained in:
Tom
2026-02-25 16:37:43 -03:00
committed by GitHub
parent b403d69982
commit 4f8212d491
11 changed files with 256 additions and 20 deletions

View File

@@ -239,6 +239,8 @@
<string name="playlist_chooser_dialog_title">Add to a playlist</string>
<string name="playlist_chooser_dialog_toast_add_success">Added song(s) to playlist</string>
<string name="playlist_chooser_dialog_toast_add_failure">Failed to add song(s) to playlist</string>
<string name="playlist_chooser_dialog_toast_remove_success">Removed song from playlist</string>
<string name="playlist_chooser_dialog_toast_remove_failure">Failed to remove song from playlist</string>
<string name="playlist_chooser_dialog_toast_all_skipped">All songs were skipped as duplicates</string>
<string name="playlist_chooser_dialog_visibility_public">Public</string>
<string name="playlist_chooser_dialog_visibility_private">Private</string>
@@ -472,7 +474,8 @@
<string name="song_bottom_sheet_instant_mix">Instant mix</string>
<string name="song_bottom_sheet_play_next">Play next</string>
<string name="song_bottom_sheet_rate">Rate</string>
<string name="song_bottom_sheet_remove">Remove</string>
<string name="song_bottom_sheet_remove">Remove from device</string>
<string name="song_bottom_sheet_remove_from_playlist">Remove from playlist</string>
<string name="song_bottom_sheet_share">Share</string>
<string name="song_list_page_downloaded">Downloaded</string>
<string name="song_list_page_most_played">Most played tracks</string>