From the multi-agent perf audit (adversarially verified), the two app-side wins: - 1.1 Preserve the max-resolution cap on autoplay-next. The enter-video trackSelectionParameters reset built from a blank default, silently dropping the data-saver ceiling every URL change so autoplay streamed uncapped. Now: re-enable the video track via buildUpon + reassert applyMaxResolutionCap(). - 2.1 VideoDetailBody verticalScroll Column -> LazyColumn. Related + more-from-channel rows recycle and defer each AsyncImage decode + the two ThumbnailProgress flow collectors until scrolled into view (was ~40 decodes + ~80 collectors eager on every open). Namespaced item keys (rel:/mfc:) so a url in both lists doesn't crash the list; kept take(20); dialogs hoisted out of the lazy content. |
||
|---|---|---|
| .. | ||
| src/main | ||
| build.gradle.kts | ||
| proguard-rules.pro | ||