diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 08cd87ff8f9..663e449cad0 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -43,6 +43,12 @@ `Result` that didn't support this which produced an `UnsuportedOperationException` ([#78](https://github.com/androidx/media/issues/78)). + * Fix the way `PlayerWrapper` creates a `VolumeProviderCompat` by + determining `volumeControlType` through both legacy commands + (`COMMAND_ADJUST_DEVICE_VOLUME` and `COMMAND_SET_DEVICE_VOLUME`) and new + commands (`COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS` and + `COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS`) + ([#554](https://github.com/androidx/media/issues/554)). * Test Utilities: * Add a `nanoTime()` method to `Clock` to provide override support of `System.nanoTime()` diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java index 60aa78d6d7b..24c7cb019c6 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java @@ -1031,9 +1031,11 @@ public VolumeProviderCompat createVolumeProviderCompat() { } Commands availableCommands = getAvailableCommands(); int volumeControlType = VolumeProviderCompat.VOLUME_CONTROL_FIXED; - if (availableCommands.contains(COMMAND_ADJUST_DEVICE_VOLUME)) { + if (availableCommands.containsAny( + COMMAND_ADJUST_DEVICE_VOLUME, COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS)) { volumeControlType = VolumeProviderCompat.VOLUME_CONTROL_RELATIVE; - if (availableCommands.contains(COMMAND_SET_DEVICE_VOLUME)) { + if (availableCommands.containsAny( + COMMAND_SET_DEVICE_VOLUME, COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS)) { volumeControlType = VolumeProviderCompat.VOLUME_CONTROL_ABSOLUTE; } }