Skip to content

feat: complete TMDb watch providers integration and resolve Moshi par…#524

Merged
akitikkx merged 8 commits intomainfrom
feature/tmdb-watch-providers
Mar 13, 2026
Merged

feat: complete TMDb watch providers integration and resolve Moshi par…#524
akitikkx merged 8 commits intomainfrom
feature/tmdb-watch-providers

Conversation

@akitikkx
Copy link
Owner

@akitikkx akitikkx commented Mar 13, 2026

Title

feat: Implement TMDB Watch Providers, delightful UI interactions, and shimmer loaders

Description

This PR introduces the new "Where to Watch" feature powered by the TMDB API, alongside significant UI interaction improvements and skeletal loading states across the application.

Key Changes

🍿 Features & TMDB Integration

  • Integrated the TMDB API client via Retrofit to fetch streaming watch provider data.
  • Added TmdbWatchProviders data models and repository mappings in :core:data.
  • Implemented the new WatchProvidersSection in the ShowDetailScreen to display available streaming platforms (Netflix, HBO Max, etc.) based on the user's localized region.
  • Expanded the ShowDetailArg and cross-graph navigation arguments to safely share TMDB, IMDb, and Trakt IDs between screens.

✨ UI Polish & Delightful Interactions

  • BounceClick Modifier: Built a custom bounceClick Compose modifier in :core:designsystem to replace standard ripples with a fluid, tactile spring-based scaling animation. Rolled this out to ListPosterCard, UpNextEpisodeCard, and ShowSeasonEpisodeCard.
  • Skeletal Loaders: Replaced standard circular loading spinners with sweeping gradient compose-shimmer effects. Implemented ShimmerAiringSoon, ShimmerRecommended, and ShimmerPosterCardRow across the DashboardScreen, ExploreScreen, and ShowDetailScreen.

🛠️ Testing & CI Pipeline Health

  • Wrote comprehensive unit testing coverage for ShowDetailViewModel and ShowDetailRepository fetching logic.
  • Fixed test suite NullPointerException regressions caused by un-stubbed Mockito asynchronous flows.
  • Updated .github/workflows/deploy.yml and pull_request.yml to inject the new TMDB_ACCESS_TOKEN secret required for CI checks and Fastlane deployments.

Testing Instructions

  1. Navigate to a Show's Detail Screen (e.g., The Last of Us, The Pitt).
  2. Scroll down to see the exact streaming platforms the show is available on via the "Where to Watch" banner.
  3. Tap on any poster card across the app (Dashboard, Seasons) to test the new squishy BounceClick interaction.
  4. Pull-to-refresh the Dashboard to see the new compose-shimmer skeleton loading boxes.
Show detail update Episode details screen [new]
Screenshot_20260313_192445 Screenshot_20260313_195136

@akitikkx akitikkx self-assigned this Mar 13, 2026
@akitikkx akitikkx added documentation Improvements or additions to documentation enhancement New feature or request labels Mar 13, 2026
@akitikkx akitikkx merged commit 0376d43 into main Mar 13, 2026
2 checks passed
@akitikkx akitikkx deleted the feature/tmdb-watch-providers branch March 13, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant