diff options
| author | 2024-05-20 17:28:05 +0100 | |
|---|---|---|
| committer | 2024-05-20 17:38:43 +0100 | |
| commit | 8ae5f905cba47d9e09fbfbae97eac7d3599614f7 (patch) | |
| tree | 6d1e87cb5d8d5fc487f8b6bc740046a8dc02f948 | |
| parent | 0051d65378406c4893fba20db02e56858523104a (diff) | |
Fix nullability in onAudioInfoChanged
The callback has always returned a @NonNull value, but was never marked
as such. This change also makes nullability of the MediaController's
PlaybackInfo consistent with ag/27085155.
Also, simplify downstream nullability for implementers of
onAudioInfoChanged.
Flag: EXEMPT non-functional refactor
Test: Presubmit.
Bug: 333564788
Change-Id: I9d4799d77158742c13f04de1cec9a3d4dd997fcf
8 files changed, 14 insertions, 14 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 13958d24096b..29e0803fa1f3 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -26611,7 +26611,7 @@ package android.media.session { public abstract static class MediaController.Callback { ctor public MediaController.Callback(); - method public void onAudioInfoChanged(android.media.session.MediaController.PlaybackInfo); + method public void onAudioInfoChanged(@NonNull android.media.session.MediaController.PlaybackInfo); method public void onExtrasChanged(@Nullable android.os.Bundle); method public void onMetadataChanged(@Nullable android.media.MediaMetadata); method public void onPlaybackStateChanged(@Nullable android.media.session.PlaybackState); diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java index a4887567b075..70462effaa54 100644 --- a/media/java/android/media/session/MediaController.java +++ b/media/java/android/media/session/MediaController.java @@ -614,12 +614,11 @@ public final class MediaController { } /** - * Override to handle changes to the audio info. + * Signals a change in the session's {@link PlaybackInfo PlaybackInfo}. * - * @param info The current audio info for this session. + * @param playbackInfo The latest known state of the session's playback info. */ - public void onAudioInfoChanged(PlaybackInfo info) { - } + public void onAudioInfoChanged(@NonNull PlaybackInfo playbackInfo) {} } /** @@ -1182,7 +1181,7 @@ public final class MediaController { } @Override - public void onVolumeInfoChanged(PlaybackInfo info) { + public void onVolumeInfoChanged(@NonNull PlaybackInfo info) { MediaController controller = mController.get(); if (controller != null) { controller.postMessage(MSG_UPDATE_VOLUME, info, null); diff --git a/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.java b/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.java index 23b2cc2df794..89f3cf5e9aab 100644 --- a/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.java +++ b/packages/SettingsLib/src/com/android/settingslib/volume/MediaSessions.java @@ -278,7 +278,7 @@ public class MediaSessions { } @Override - public void onAudioInfoChanged(PlaybackInfo info) { + public void onAudioInfoChanged(@NonNull PlaybackInfo info) { if (D.BUG) { Log.d(TAG, cb("onAudioInfoChanged") + Util.playbackInfoToString(info) + " sentRemote=" + sentRemote); diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDeviceManager.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDeviceManager.kt index 043fbfaa8a23..31b90ed5f7ac 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDeviceManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDeviceManager.kt @@ -224,9 +224,9 @@ constructor( } @WorkerThread - override fun onAudioInfoChanged(info: MediaController.PlaybackInfo?) { - val newPlaybackType = info?.playbackType ?: PLAYBACK_TYPE_UNKNOWN - val newPlaybackVolumeControlId = info?.volumeControlId + override fun onAudioInfoChanged(info: MediaController.PlaybackInfo) { + val newPlaybackType = info.playbackType + val newPlaybackVolumeControlId = info.volumeControlId if ( newPlaybackType == playbackType && newPlaybackVolumeControlId == playbackVolumeControlId diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaControllerInteractor.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaControllerInteractor.kt index 4812765d4afe..a714f8078db7 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaControllerInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaControllerInteractor.kt @@ -86,7 +86,7 @@ private class MediaControllerCallbackProducer( send(MediaControllerChangeModel.ExtrasChanged(extras)) } - override fun onAudioInfoChanged(info: MediaController.PlaybackInfo?) { + override fun onAudioInfoChanged(info: MediaController.PlaybackInfo) { send(MediaControllerChangeModel.AudioInfoChanged(info)) } diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaDeviceSessionInteractor.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaDeviceSessionInteractor.kt index 599bd73abb69..6e1ebc820b08 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaDeviceSessionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaDeviceSessionInteractor.kt @@ -57,7 +57,7 @@ constructor( } /** [MediaController.PlaybackInfo] changes for the [MediaDeviceSession]. */ - fun playbackInfo(session: MediaDeviceSession): Flow<MediaController.PlaybackInfo?> { + fun playbackInfo(session: MediaDeviceSession): Flow<MediaController.PlaybackInfo> { return stateChanges(session) { emit(MediaControllerChangeModel.AudioInfoChanged(it.playbackInfo)) } diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/model/MediaControllerChangeModel.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/model/MediaControllerChangeModel.kt index ef5a44a7a2fd..8b5116a64365 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/model/MediaControllerChangeModel.kt +++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/model/MediaControllerChangeModel.kt @@ -40,6 +40,6 @@ sealed interface MediaControllerChangeModel { data class ExtrasChanged(val extras: Bundle?) : MediaControllerChangeModel - data class AudioInfoChanged(val info: MediaController.PlaybackInfo?) : + data class AudioInfoChanged(val info: MediaController.PlaybackInfo) : MediaControllerChangeModel } diff --git a/services/core/java/com/android/server/media/MediaShellCommand.java b/services/core/java/com/android/server/media/MediaShellCommand.java index a20de3198d2c..bea71dc5cedb 100644 --- a/services/core/java/com/android/server/media/MediaShellCommand.java +++ b/services/core/java/com/android/server/media/MediaShellCommand.java @@ -16,6 +16,7 @@ package com.android.server.media; +import android.annotation.NonNull; import android.app.ActivityThread; import android.content.Context; import android.media.MediaMetadata; @@ -247,7 +248,7 @@ public class MediaShellCommand extends ShellCommand { } @Override - public void onAudioInfoChanged(MediaController.PlaybackInfo info) { + public void onAudioInfoChanged(@NonNull MediaController.PlaybackInfo info) { mWriter.println("onAudioInfoChanged " + info); } } |