
This change moves the handling of any media button event into `MediaSessionImpl.onMediaButtonEvent(intent)`. This includes the double click handling from `MediaSessionLegacyStub`. The advantage is that everything is in one place which allows to offer `MediaSession.Callback.onMediaButtonEvent` with which an app can override the default implementation and handle media buttons in a custom way. Media button events can originate from various places: - Delivered to `MediaSessionService.onStartCommand(Intent)` - A `PendingIntent` from the notification below API 33 - An `Intent` sent to the `MediaButtonReceiver` by the system dispatched to the service - Delivered to `MediaSessionCompat.Callback.onMediaButtonEvent(Intent)` implemented by `MediaSessionLegacyStub` during the session is active - Bluetooth (headset/remote control) - Apps/system using `AudioManager.dispatchKeyEvent(KeyEvent)` - Apps/system using `MediaControllerCompat.dispatchKeyEvent(keyEvent)` Issue: androidx/media#12 Issue: androidx/media#159 Issue: androidx/media#216 Issue: androidx/media#249 #minor-release PiperOrigin-RevId: 575231251
Session test module
Tests cross-process use of the session module. To run the tests:
- Prepare a device (either an emulator or a real device) to run the tests on.
- Run
./gradlew :test-session-current:cAT