Skip to content

feat(mobile): progressive home UX, smooth transitions, predictive back, and instant details hydration - #598

Merged
ProdigyV21 merged 12 commits into
ProdigyV21:mainfrom
Himanth-reddy:feat/mobile-progressive-home-ux
Aug 26, 2026
Merged

feat(mobile): progressive home UX, smooth transitions, predictive back, and instant details hydration#598
ProdigyV21 merged 12 commits into
ProdigyV21:mainfrom
Himanth-reddy:feat/mobile-progressive-home-ux

Conversation

@Himanth-reddy

@Himanth-reddy Himanth-reddy commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR delivers comprehensive UI/UX refinements across the mobile app, focusing on progressive loading, layout stability, unified screen transitions, predictive back integration, instant media hydration, and a horizontal sliding season viewport:

1. Progressive Home UX & Catalog Stabilization

  • Progressive Catalog Hydration: Streams default TMDB catalogs immediately on launch while lazily resolving custom MDBList/metadata catalogs in the background to eliminate initial startup blocking.
  • Infinite Pagination Loop Fix: Enforced robust pagination guards and keyed row stability to prevent redundant recomposition/re-triggering loops.
  • Hero & Branding Polish: Refined hero banner with smooth SVG branding overlays, responsive aspect ratios, and asynchronous background IMDb rating hydration.
  • Mobile Sports Feed Clean-Up: Dynamically omits inactive/locked live sports rows from the mobile feed when no sports addon is installed, leaving TV defaults and catalog presets 100% untouched.

2. Horizontal Sliding Season Viewport Transition

  • Stationary Controls & Clean Motion: Keeps season selector pills, headers, and metadata stationary while animating the entire episode area as a unified horizontal sliding viewport.
  • Physics-Based Directional Slide: Moving forward (e.g. S1 → S2) smoothly translates exiting content out left and enters new content from the right; moving backward translates in reverse using CubicBezierEasing(0.25f, 0.1f, 0.25f, 1.0f) over 340ms.
  • Simultaneous Season Rendering & Validation: Caches episodes per season so both exiting and entering seasons render valid data simultaneously. On un-cached shows, clean episode card skeletons slide in while fetching without showing stale episodes.
  • Background Season Priming: Automatically pre-fetches all seasons for a show in the background on details load for instant 0ms switching across seasons.
  • Episode Skeleton Polish: Removed rating skeletons to keep loading viewports uncluttered; ratings smoothly fade in (AnimatedVisibility) once scraped and ready.

3. Profile Selection & Persistent Viewport

  • Seamless Profile Switch: Redesigned profile selection flow with smooth shared loading animations and unified persistent viewports across mobile destinations.
  • Visual Continuity: Avoids harsh screen flashes or jumpy layout recalculations when switching between profiles or returning to home.

4. Search & Details Refinements

  • Search Card Layout: Aligned single-line title typography with ellipsis, unified badge positioning, and added smooth fade transitions for clearlogos.
  • Details Logo & Title Fallback: Centered clearlogo in media details without premature raw text flashing, added smooth crossfade metadata/button transitions, and ensured fallback title text is cleanly rendered when a title has no logo.
  • Instant Details Hydration: Shared in-memory and disk logo/item caching across HomeScreen, SearchScreen, and DetailsScreen so backdrop and logo render on frame 0 without skeleton lag.

5. Settings & Predictive Back Navigation

  • Telegram & Plugins Subpages: Integrated Telegram settings into MobileSettingsSubPage with standard navigation header and visual consistency.
  • Predictive Back Gestures: Scoped modal BackHandlers so predictive back gestures smoothly reveal the parent Settings screen underneath for both Telegram and Plugins.

Verification

  • Rebased cleanly onto upstream/main with all conflicts resolved.
  • Built staging build :app:assembleSideloadStaging cleanly with zero compiler errors.
  • Verified on physical test device covering profile selection, home streaming, search filtering, media details entry, season slide animations, and predictive back navigation.

@github-actions github-actions Bot added the area: android Changes to the Android app or Gradle build label Aug 23, 2026
@Himanth-reddy
Himanth-reddy force-pushed the feat/mobile-progressive-home-ux branch 2 times, most recently from 307cb4b to 980a7fe Compare August 25, 2026 09:59
…launch UX

- Publish mobile catalog rows progressively as metadata arrives without blocking on slower catalogs or image decodes
- Add SkeletonMobileHeroBanner and preserve top header in MobileHeroCarousel to prevent frame-0 layout shifts
- Decouple card image loading with smooth Coil crossfade and branded gradient fallbacks with titles
- Filter locked sports addons, IPTV, and placeholders from mobile hero candidates
- Add slow network detector and retry button on mobile
- Keep TV loading pipeline completely untouched
…ration, and keep unwatched series start label
…prefetch TV seasons, and polish mobile sports feed
@Himanth-reddy
Himanth-reddy force-pushed the feat/mobile-progressive-home-ux branch from 56be949 to 0f0e5c6 Compare August 25, 2026 17:39
@ProdigyV21
ProdigyV21 merged commit c910f38 into ProdigyV21:main Aug 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: android Changes to the Android app or Gradle build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants