Merged
Conversation
…music library.
- **Multi-Selection Core**:
- Introduces `MultiSelectionStateHolder` to manage selection state, preserving order and tracking selected song IDs.
- Implements `SelectionActionRow` and `SelectionCountPill` components to provide UI controls and feedback during selection mode.
- Adds `MultiSelectionBottomSheet` featuring batch actions: Play All, Add to Queue, Play Next, Toggle Like, Share as ZIP, and Delete All.
- **UI & Components**:
- Enhances `EnhancedSongListItem` with selection states, including animated borders, scale effects, and checkmark overlays.
- Updates `LibraryScreen` and `LibrarySongsTab` to support selection mode toggling via long-press and click-to-select.
- Implements `StackedAlbumArts` and `StackedCoverArts` for visual representation of selected items in headers and bottom sheets.
- **Player & Functionality**:
- Updates `PlayerViewModel` with batch processing logic for playback, queue management, and library modification of selected songs.
- Introduces `ZipShareHelper` to facilitate compressing multiple audio files into a ZIP archive for sharing.
- Implements a batch deletion flow with a single confirmation dialog for multiple files.
- **Refactoring**:
- Moves `EnhancedSongListItem` to a shared component directory to allow reuse across `DailyMixScreen`, `ArtistDetailScreen`, and `SearchScreen`.
- Refines library navigation logic to clear selection when switching tabs.
…ists
- **Playlist Management**:
- Updates `PlaylistBottomSheet` to support adding multiple songs simultaneously to one or more playlists.
- Adds `addSongsToPlaylists` to `PlaylistViewModel` for batch processing song additions via `userPreferencesRepository`.
- Enhances playlist creation logic to allow adding a selection of songs immediately upon creating a new playlist.
- Refines UI feedback with dynamic titles and toast notifications for batch operations.
- **UI & Multi-Selection**:
- Updates `EnhancedSongListItem` to display selection indices (1, 2, 3...) during multi-selection mode instead of a generic check icon.
- Integrates multi-selection support into `LibraryScreen` (Tracks and Liked Songs tabs), enabling long-press to enter selection mode and batch actions.
- Updates song list components to handle selection toggles and provide visual feedback for selected states.
- **Component Refactoring**:
- Refactors `PlaylistBottomSheet` to accept a `List<Song>` instead of a single `Song` entity.
- Updates `ArtistDetail`, `AlbumDetail`, `Search`, `GenreDetail`, and `DailyMix` screens to compatible with the updated `PlaylistBottomSheet` signature.
- Implements safer fallback mechanisms in components when handling empty song lists or null states.
- **Multi-Selection & Actions**:
- Updates `SelectionActionRow` in `LibraryScreen` to contextually resolve the "Select All" target based on the active tab (Liked, Folders, or Songs).
- Updates `MultiSelectionBottomSheet` to use a more emphasized typography style for the "Play All" action.
- Replaces the `FolderZip` icon with a `Share` icon for the bulk sharing action.
- **UI & Layout**:
- Removes zero-height and small spacers from the top of the `Artists` and `Songs` lists to streamline vertical spacing.
- Removes the top gradient fade effect overlay in `LibrarySongsTab`.
- Optimizes button layouts in `SongInfoBottomSheet` and `MultiSelectionBottomSheet` by removing horizontal content padding for a more compact appearance.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added multi-selection features for LibraryScreen