Skip to content

added hueSound screen in explore#562

Open
GautamCoder4019k wants to merge 5 commits intometabrainz:mainfrom
GautamCoder4019k:feat_huesound_feature
Open

added hueSound screen in explore#562
GautamCoder4019k wants to merge 5 commits intometabrainz:mainfrom
GautamCoder4019k:feat_huesound_feature

Conversation

@GautamCoder4019k
Copy link
Contributor

@GautamCoder4019k GautamCoder4019k commented Apr 12, 2025

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

@GautamCoder4019k GautamCoder4019k marked this pull request as draft April 12, 2025 15:01
@07jasjeet
Copy link
Collaborator

Hey @GautamCoder4019k, any plans on picking this up again?

@GautamCoder4019k
Copy link
Contributor Author

@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.
@GautamCoder4019k GautamCoder4019k marked this pull request as ready for review December 22, 2025 20:02
Copilot AI review requested due to automatic review settings December 22, 2025 20:02
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +39 to +44
fun onColorPickled(colorHex: String) {
viewModelScope.launch(Dispatchers.IO) {
releaseList.value =
exploreRepository.getReleasesFromColor(colorHex).data?.payload?.releases
?: emptyList()
}
Copy link

Copilot AI Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

…ExploreScreen.kt

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants