From 278ec969b730f247342a44d26fc4536a25993397 Mon Sep 17 00:00:00 2001 From: Kyunglyul Hyun Date: Thu, 20 Aug 2020 23:10:30 +0900 Subject: [PATCH] Change MediaSession#isActiveState to PlaybackState#isActiveState It didn't look good for MediaSession to have isActiveState, where states are defined in PlaybackState. Bug: 161331016 Test: build successful Change-Id: I939baf51693c4039573330c4e5d628a69dc5a756 --- api/module-lib-current.txt | 4 ++++ .../shell/pip/phone/PipMediaController.java | 4 +--- .../android/media/session/MediaSession.java | 19 ------------------ .../android/media/session/PlaybackState.java | 20 +++++++++++++++++++ non-updatable-api/module-lib-current.txt | 4 ++++ .../server/media/MediaSessionRecord.java | 2 +- 6 files changed, 30 insertions(+), 23 deletions(-) diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt index 2d24d5b9a0cac..ab758c93cfdcd 100644 --- a/api/module-lib-current.txt +++ b/api/module-lib-current.txt @@ -89,6 +89,10 @@ package android.media.session { field public static final int RESULT_MEDIA_KEY_NOT_HANDLED = 0; // 0x0 } + public final class PlaybackState implements android.os.Parcelable { + method public boolean isActiveState(); + } + } package android.net { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMediaController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMediaController.java index 4a8db6b42b3f0..22c05fb8acd9a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMediaController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMediaController.java @@ -28,7 +28,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.graphics.drawable.Icon; import android.media.session.MediaController; -import android.media.session.MediaSession; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; import android.os.UserHandle; @@ -153,8 +152,7 @@ public class PipMediaController { } ArrayList mediaActions = new ArrayList<>(); - int state = mMediaController.getPlaybackState().getState(); - boolean isPlaying = MediaSession.isActiveState(state); + boolean isPlaying = mMediaController.getPlaybackState().isActiveState(); long actions = mMediaController.getPlaybackState().getActions(); // Prev action diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index e17e069d61d0e..f582d2addf175 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -608,25 +608,6 @@ public final class MediaSession { return null; } - /** - * Return true if this is considered an active playback state. - * - * @hide - */ - public static boolean isActiveState(int state) { - switch (state) { - case PlaybackState.STATE_FAST_FORWARDING: - case PlaybackState.STATE_REWINDING: - case PlaybackState.STATE_SKIPPING_TO_PREVIOUS: - case PlaybackState.STATE_SKIPPING_TO_NEXT: - case PlaybackState.STATE_BUFFERING: - case PlaybackState.STATE_CONNECTING: - case PlaybackState.STATE_PLAYING: - return true; - } - return false; - } - /** * Returns whether the given bundle includes non-framework Parcelables. */ diff --git a/media/java/android/media/session/PlaybackState.java b/media/java/android/media/session/PlaybackState.java index 8dd61276f75f9..b1a88ed16bcde 100644 --- a/media/java/android/media/session/PlaybackState.java +++ b/media/java/android/media/session/PlaybackState.java @@ -19,6 +19,7 @@ import android.annotation.DrawableRes; import android.annotation.IntDef; import android.annotation.LongDef; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -480,6 +481,25 @@ public final class PlaybackState implements Parcelable { return mExtras; } + /** + * Returns whether this is considered as an active playback state. + * @hide + */ + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) + public boolean isActiveState() { + switch (mState) { + case PlaybackState.STATE_FAST_FORWARDING: + case PlaybackState.STATE_REWINDING: + case PlaybackState.STATE_SKIPPING_TO_PREVIOUS: + case PlaybackState.STATE_SKIPPING_TO_NEXT: + case PlaybackState.STATE_BUFFERING: + case PlaybackState.STATE_CONNECTING: + case PlaybackState.STATE_PLAYING: + return true; + } + return false; + } + public static final @android.annotation.NonNull Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override diff --git a/non-updatable-api/module-lib-current.txt b/non-updatable-api/module-lib-current.txt index 6e3cec6a4f1fc..5bbdb28ffd57b 100644 --- a/non-updatable-api/module-lib-current.txt +++ b/non-updatable-api/module-lib-current.txt @@ -79,6 +79,10 @@ package android.media.session { field public static final int RESULT_MEDIA_KEY_NOT_HANDLED = 0; // 0x0 } + public final class PlaybackState implements android.os.Parcelable { + method public boolean isActiveState(); + } + } package android.os { diff --git a/services/core/java/com/android/server/media/MediaSessionRecord.java b/services/core/java/com/android/server/media/MediaSessionRecord.java index 793cfcd77414d..f9973529a120f 100644 --- a/services/core/java/com/android/server/media/MediaSessionRecord.java +++ b/services/core/java/com/android/server/media/MediaSessionRecord.java @@ -382,7 +382,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR if (mPlaybackState == null) { return false; } - return MediaSession.isActiveState(mPlaybackState.getState()) == expected; + return mPlaybackState.isActiveState() == expected; } /**