feat: Add Listen Together synchronized podcast feature#2039
Conversation
|
Thank you @, for creating the PR and contributing to our UltimateHealth project 💗. |
Automated Review FeedbackProvide actionable comments grouped by severity: Important
Suggestions
|
|
/review |
🤖 Gemini AI Code ReviewThis Pull Request introduces the "Listen Together" feature, a significant enhancement enabling real-time synchronized podcast listening and live chat. The implementation spans several new components and a core React hook ( Overall, the PR demonstrates a solid understanding of React Native component architecture, state management, and real-time communication patterns. The use of Tamagui for styling, However, a thorough review reveals several areas for improvement, particularly concerning security, edge case handling, and minor UI/UX refinements. 🔴 High Severity
🟡 Medium Severity
🟢 Low Severity / Nits
What's Good ✅
VerdictRequest Changes: The high-severity security vulnerability related to |
SB2318
left a comment
There was a problem hiding this comment.
@vivek0369 Thanks for your contribution! But please check the issue first where I have shared some implementation plan.
Please let me know your progress accordingly.
I will be happy to merge then. 😇
📌 Description
Overview
This pull request introduces the "Listen Together" feature, enabling users to enjoy health podcasts in real-time synchronization with friends and family while chatting live during the session.
The implementation provides the frontend architecture for collaborative podcast listening using Socket.IO, including room creation, synchronized playback, participant management, and a real-time chat interface.
✨ Features Implemented
🎧 Core Sync Engine
Added a new
useListenTogetherReact hook.Manages Socket.IO connections and room lifecycle.
Synchronizes playback events:
Handles participant join/leave events.
Includes latency compensation for improved synchronization.
🎵 ListenTogetherScreen
🔑 JoinListenTogetherScreen
💬 ListenTogetherChat
👥 ListenTogetherRoomBar
Displays:
🎙 Podcast Detail Integration
🛠 Technical Details
Frontend
Integrated
socket.io-clientusing the existingSocketContext.Added strongly typed socket events.
Introduced
ListenTogetherTypes.tsfor complete type safety.Registered:
ListenTogetherScreenJoinListenTogetherScreenUpdated:
StackNavigation.tsxtype.tsSocket Events
Implemented support for frontend events including:
✅ Benefits
🧪 Testing
📝 Note for Backend Reviewers
To fully test this feature, the backend should implement the
listen-together:*Socket.IO namespace and corresponding room management APIs as defined in the frontend implementation.🔗 Related Issue
Closes #1829
🏷 Labels
enhancement·feature·frontend·real-time·socket.io·webrtc·react-native·GSSoC'26