From 9b72ad0924f53c845620c1d28e5b7a476f74e249 Mon Sep 17 00:00:00 2001 From: Hyundo Moon Date: Mon, 22 Apr 2019 22:18:19 +0900 Subject: [PATCH] Make MediaController#getSessionInfo() as @NonNull Bug: 131069100 Test: atest CtsMediaTestCases:android.media.cts.MediaSessionTest; atest CtsMediaTestCases:android.media.cts.MediaControllerTest; Change-Id: I5ecf04fd090dc684f5c7a84c1375de1639f7b4bd --- api/current.txt | 2 +- .../media/session/MediaController.java | 25 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/api/current.txt b/api/current.txt index 44b11e15f3b8a..922482e2da21d 100644 --- a/api/current.txt +++ b/api/current.txt @@ -27245,7 +27245,7 @@ package android.media.session { method @Nullable public CharSequence getQueueTitle(); method public int getRatingType(); method @Nullable public android.app.PendingIntent getSessionActivity(); - method @Nullable public android.os.Bundle getSessionInfo(); + method @NonNull public android.os.Bundle getSessionInfo(); method @NonNull public android.media.session.MediaSession.Token getSessionToken(); method @NonNull public android.media.session.MediaController.TransportControls getTransportControls(); method public void registerCallback(@NonNull android.media.session.MediaController.Callback); diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java index 79d8be1a04a42..3500475eeeda9 100644 --- a/media/java/android/media/session/MediaController.java +++ b/media/java/android/media/session/MediaController.java @@ -414,18 +414,25 @@ public final class MediaController { /** * Gets the additional session information which was set when the session was created. * - * @return The additional session information + * @return The additional session information, or {@link Bundle#EMPTY} if not set. */ - @Nullable + @NonNull public Bundle getSessionInfo() { - if (mSessionInfo == null) { - try { - mSessionInfo = mSessionBinder.getSessionInfo(); - } catch (RemoteException e) { - Log.d(TAG, "Dead object in getSessionInfo.", e); - } + if (mSessionInfo != null) { + return new Bundle(mSessionInfo); } - return mSessionInfo; + + // Get info from the connected session. + try { + mSessionInfo = mSessionBinder.getSessionInfo(); + } catch (RemoteException e) { + Log.d(TAG, "Dead object in getSessionInfo.", e); + } + + if (mSessionInfo == null) { + mSessionInfo = Bundle.EMPTY; + } + return new Bundle(mSessionInfo); } /**