SIGN IN SIGN UP

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