skoruppa
b21402e321
reduce allocations and recompositions in EpisodesSection and SeasonTabs
- EpisodeCard: isFocused reads as State.value in drawWithCache to skip recomposition
- EpisodeCard: cache onClick/onLongPress/onFocused lambdas in remember
- EpisodeCard: wrap isWatched/shouldBlur/progressPercent/showProgress in remember
- EpisodeCard: hoist CardDefaults.shape/colors/border/scale and FocusRing before Card
- EpisodeCard: replace background+border with single drawWithCache pass
- SeasonTabs: hoist shape, border, scale, textStyle, textSecondary before LazyRow
- SeasonTabs: cache strCdWatched stringResource