added hueSound screen in explore#562
added hueSound screen in explore#562GautamCoder4019k wants to merge 5 commits intometabrainz:mainfrom
Conversation
|
Hey @GautamCoder4019k, any plans on picking this up again? |
|
@07jasjeet sorry for the late response was busy with work. I will pick this up this week. |
# Conflicts: # app/src/main/java/org/listenbrainz/android/ui/navigation/AppNavigation.kt # app/src/main/java/org/listenbrainz/android/ui/navigation/TopBar.kt # app/src/main/java/org/listenbrainz/android/ui/screens/explore/ExploreScreen.kt
- Enable navigation to `HueSoundScreen` from `Explore`. - Refactor color wheel interaction with physics-based scrolling and responsive UI. - Add bottom sheet to display tracklist for selected releases using `ListenCardSmallDefault`. - Update `HueSoundViewModel` and `HueSoundUiState` to handle release selection and flow combination. - Update `Release` and `HueSoundPayload` models to include recordings and correct data types. - Integrate `TopBar` and `SnackbarHost` into the screen.
There was a problem hiding this comment.
Pull request overview
This pull request introduces a new "HueSound" feature to the ListenBrainz Android application, enabling users to explore music releases based on color selection through an interactive color wheel interface. The implementation includes UI components, data models, repository layer, and navigation integration.
Key Changes:
- Added an interactive dual-wheel color picker UI with smooth rotation and decay animations
- Integrated new API endpoint to fetch music releases based on selected colors
- Implemented complete MVVM architecture with repository pattern for the feature
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
HueSoundViwModel.kt |
ViewModel managing state and API calls for color-based music exploration |
HueSoundUiState.kt |
Data class holding UI state for releases and selected release |
HueSoundScreen.kt |
Composable screen with color wheel and release grid display |
HueSoundPlayload.kt |
Data models for API response structure |
ExploreRepository.kt / ExploreRepositoryImpl.kt |
Repository layer for fetching color-based releases |
ExploreService.kt |
Retrofit service interface for explore API endpoints |
ExploreRepositoryModule.kt |
Dagger Hilt module for dependency injection |
ServiceModule.kt |
Updated to provide ExploreService instance |
AppNavigation.kt |
Added navigation route and handler for HueSound screen |
ExploreScreen.kt |
Updated to include HueSound card with navigation |
AppNavigationItem.kt |
Added HueSound navigation item |
strings.xml |
Added "Discover" string resource |
huesound_cover.jpg |
Cover image asset for HueSound feature card |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundScreen.kt
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundScreen.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/repository/explore/ExploreRepositoryImpl.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/di/ExploreRepositoryModule.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundScreen.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/model/explore/HueSoundPayload.kt
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundUiState.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundScreen.kt
Outdated
Show resolved
Hide resolved
| fun onColorPickled(colorHex: String) { | ||
| viewModelScope.launch(Dispatchers.IO) { | ||
| releaseList.value = | ||
| exploreRepository.getReleasesFromColor(colorHex).data?.payload?.releases | ||
| ?: emptyList() | ||
| } |
There was a problem hiding this comment.
Missing error handling for the API call. If getReleasesFromColor fails or returns an error, the releaseList will be set to an empty list without informing the user. This can lead to a confusing user experience where selecting a color appears to do nothing. Consider showing an error message to the user via a snackbar or similar mechanism.
app/src/main/java/org/listenbrainz/android/viewmodel/HueSoundViewModel.kt
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 14 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundScreen.kt
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/ui/screens/explore/ExploreScreen.kt
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundScreen.kt
Show resolved
Hide resolved
app/src/main/java/org/listenbrainz/android/ui/screens/explore/HueSoundScreen.kt
Show resolved
Hide resolved
…ExploreScreen.kt Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This pull request introduces a new feature called "HueSound" to the ListenBrainz Android application. The changes include adding new classes, modifying existing classes, and updating the navigation to integrate the new feature.
Step 1 : Make the HueSound screen (Completed)Step 2 : Display the playlist that we get from the result(Completed)Step 3 : Check for any bugs (Completed)Implementation:
WhatsApp.Video.2025-12-23.at.1.55.33.AM.mp4