From 1a094301827c91027b16194a2e840ea3df2ebfc6 Mon Sep 17 00:00:00 2001 From: tonihei Date: Wed, 1 Nov 2023 03:06:07 -0700 Subject: [PATCH] Make remote process bundle method less error-prone The toBundle method should only be used for remote processes, because there is a separate method for in-process bundling. Renaming the method makes this more explicit and less error-prone. PiperOrigin-RevId: 578456532 --- .../java/androidx/media3/session/ConnectionState.java | 6 +++--- .../androidx/media3/session/MediaSessionStub.java | 6 +++--- .../main/java/androidx/media3/session/PlayerInfo.java | 4 ++-- .../java/androidx/media3/session/PlayerInfoTest.java | 11 +++++++---- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java b/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java index bae2b9647d..bf928cd1f0 100644 --- a/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java +++ b/libraries/session/src/main/java/androidx/media3/session/ConnectionState.java @@ -98,10 +98,10 @@ import java.util.List; @Override public Bundle toBundle() { - return toBundle(Integer.MAX_VALUE); + return toBundleForRemoteProcess(Integer.MAX_VALUE); } - public Bundle toBundle(int controllerInterfaceVersion) { + public Bundle toBundleForRemoteProcess(int controllerInterfaceVersion) { Bundle bundle = new Bundle(); bundle.putInt(FIELD_LIBRARY_VERSION, libraryVersion); BundleCompat.putBinder(bundle, FIELD_SESSION_BINDER, sessionBinder.asBinder()); @@ -121,7 +121,7 @@ import java.util.List; playerInfo .filterByAvailableCommands( intersectedCommands, /* excludeTimeline= */ false, /* excludeTracks= */ false) - .toBundle(controllerInterfaceVersion)); + .toBundleForRemoteProcess(controllerInterfaceVersion)); bundle.putInt(FIELD_SESSION_INTERFACE_VERSION, sessionInterfaceVersion); return bundle; } diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java index bc6be4088b..5bde573e57 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionStub.java @@ -540,7 +540,7 @@ import java.util.concurrent.ExecutionException; sequencedFutureManager.obtainNextSequenceNumber(), caller instanceof MediaControllerStub ? state.toBundleInProcess() - : state.toBundle(controllerInfo.getInterfaceVersion())); + : state.toBundleForRemoteProcess(controllerInfo.getInterfaceVersion())); connected = true; } catch (RemoteException e) { // Controller may be died prematurely. @@ -1985,7 +1985,7 @@ import java.util.concurrent.ExecutionException; Bundle playerInfoBundle = iController instanceof MediaControllerStub ? filteredPlayerInfo.toBundleInProcess() - : filteredPlayerInfo.toBundle(controllerInterfaceVersion); + : filteredPlayerInfo.toBundleForRemoteProcess(controllerInterfaceVersion); iController.onPlayerInfoChangedWithExclusions( sequenceNumber, playerInfoBundle, @@ -1998,7 +1998,7 @@ import java.util.concurrent.ExecutionException; //noinspection deprecation iController.onPlayerInfoChanged( sequenceNumber, - filteredPlayerInfo.toBundle(controllerInterfaceVersion), + filteredPlayerInfo.toBundleForRemoteProcess(controllerInterfaceVersion), bundlingExclusionsTimeline); } } diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java index d7f6df30e7..a60e6389b3 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerInfo.java @@ -899,10 +899,10 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue; @Override public Bundle toBundle() { - return toBundle(Integer.MAX_VALUE); + return toBundleForRemoteProcess(Integer.MAX_VALUE); } - public Bundle toBundle(int controllerInterfaceVersion) { + public Bundle toBundleForRemoteProcess(int controllerInterfaceVersion) { Bundle bundle = new Bundle(); if (playerError != null) { bundle.putBundle(FIELD_PLAYBACK_ERROR, playerError.toBundle()); diff --git a/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java b/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java index 3ed7f51c61..411eb048aa 100644 --- a/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java +++ b/libraries/session/src/test/java/androidx/media3/session/PlayerInfoTest.java @@ -651,18 +651,21 @@ public class PlayerInfoTest { } @Test - public void toBundle_withDefaultValues_omitsAllData() { + public void toBundleForRemoteProcess_withDefaultValues_omitsAllData() { Bundle bundle = - PlayerInfo.DEFAULT.toBundle(/* controllerInterfaceVersion= */ Integer.MAX_VALUE); + PlayerInfo.DEFAULT.toBundleForRemoteProcess( + /* controllerInterfaceVersion= */ Integer.MAX_VALUE); assertThat(bundle.isEmpty()).isTrue(); } @Test - public void toBundle_withDefaultValuesForControllerInterfaceBefore3_includesPositionInfos() { + public void + toBundleForRemoteProcess_withDefaultValuesForControllerInterfaceBefore3_includesPositionInfos() { // Controller before version 3 uses invalid default values for indices in (Session)PositionInfo. // The Bundle should always include these fields to avoid using the invalid defaults. - Bundle bundle = PlayerInfo.DEFAULT.toBundle(/* controllerInterfaceVersion= */ 2); + Bundle bundle = + PlayerInfo.DEFAULT.toBundleForRemoteProcess(/* controllerInterfaceVersion= */ 2); assertThat(bundle.keySet()) .containsAtLeast(