Map and propagate Timeline UIDs across the IPC boundary
This fixes a bug when `PresentationState` would throw an `UnsupportedOpteration` during shutter suppression. When transitioning between periods in a playlist, `PlayerView` and Compose `PresentationState` attempted to suppress shutter/surface hiding by checking if the transition occurred within the same window. This was done by caching the last period's UID and calling `timeline.getIndexOfPeriod(lastPeriodUidWithTracks)`. However, when operating across an IPC boundary (e.g., in a MediaController setup), the player uses a `RemotableTimeline` which strips period UIDs. Calling `getIndexOfPeriod` on it throws an `UnsupportedOperationException`, leading to a fatal crash. Solution: Implemented a timelineUidMap in MediaSessionStub, mirroring the existing trackGroupIdMap pattern to serialize `Object` uids into `Strings`. Issue: androidx/media#3264 PiperOrigin-RevId: 936621139
J
jbibik committed
58f500fa6691786c88ff06317d9cd68c976f4c99
Parent: c6fa1bd
Committed by Copybara-Service <copybara-worker@google.com>
on 6/23/2026, 1:12:49 PM