Perf audit batch 1 (app-side): preserve res-cap on autoplay + detail LazyColumn — vc=78
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.
This commit is contained in:
parent
4b73616083
commit
2defbd2925
3 changed files with 174 additions and 118 deletions
|
|
@ -9,6 +9,17 @@ const val STRAW_SDK_TARGET = 35
|
|||
|
||||
// Sulkta fork — Straw
|
||||
//
|
||||
// vc=78 / 0.1.0-CL — perf-audit batch 1 (app-side):
|
||||
// * Autoplay-next no longer drops the user's max-resolution cap. The
|
||||
// enter-video track-selection reset built params from scratch, wiping
|
||||
// the data-saver ceiling on every URL change; now it re-enables the
|
||||
// video track surgically + re-asserts applyMaxResolutionCap().
|
||||
// * VideoDetail body is now a LazyColumn, not a verticalScroll Column.
|
||||
// The related + more-from-channel lists recycle and defer each row's
|
||||
// image decode + its two progress-overlay flow collectors until
|
||||
// scrolled into view (was ~40 decodes + ~80 collectors mounted eagerly
|
||||
// on every video open). Namespaced item keys; dialogs hoisted out.
|
||||
//
|
||||
// vc=77 / 0.1.0-CK — morph perf: static poster during collapse/morph:
|
||||
// * The minibar + the whole collapse/expand morph now render the video's
|
||||
// static poster, not the live TextureView. Scaling a live-playing
|
||||
|
|
@ -89,6 +100,6 @@ const val STRAW_SDK_TARGET = 35
|
|||
// vc=19 / 0.1.0-AE — rust pipeline cutover. Extraction via
|
||||
// strawcore-core (Sulkta-Coop/strawcore) via the UniFFI wrapper; no
|
||||
// NewPipeExtractor in the runtime path.
|
||||
const val STRAW_VERSION_CODE = 77
|
||||
const val STRAW_VERSION_NAME = "0.1.0-CK"
|
||||
const val STRAW_VERSION_CODE = 78
|
||||
const val STRAW_VERSION_NAME = "0.1.0-CL"
|
||||
const val STRAW_APPLICATION_ID = "com.sulkta.straw"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue