8ecb2cf553
android / Build + lint + test (push) Has been cancelled
Three closely-related player polish changes: 1. MiniPlayer (#74) — the bottom bar's progress is a 4dp Box-based fill, not a Slider. No thumb, no drag handle. Tapping the bar still expands to NowPlaying where scrubbing lives. 2. NowPlaying scrubber (#75) — keep the M3 Slider (still interactive for seek) but shrink the thumb from the 20dp default to 10dp via SliderDefaults.Thumb's thumbSize slot. Slider's own 48dp hit slop is unchanged so tappability stays. Spacers above and below ScrubberRow drop from 8dp to 4dp. 3. Smooth playhead (#76) — new SmoothPosition.kt with rememberSmoothPositionMs(). PlayerController.uiState polls the underlying ExoPlayer position roughly every 500ms; reading it directly steps the scrubber by half-seconds, which reads as jumpy. The helper resets to the canonical positionMs on each tick (and on seek/track-change/duration-change) and runs a withFrameMillis loop while isPlaying to advance the displayed value at 1ms/ms between ticks. Pause/end/no-duration short- circuit the loop. Both MiniPlayer's fill bar and the NowPlaying scrubber consume the smoothed value.