diff options
6 files changed, 30 insertions, 23 deletions
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt index 2d24d5b9a0ca..ab758c93cfdc 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 4a8db6b42b3f..22c05fb8acd9 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<RemoteAction> 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 e17e069d61d0..f582d2addf17 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -609,25 +609,6 @@ public final class MediaSession { } /** - * 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. */ static boolean hasCustomParcelable(@Nullable Bundle bundle) { diff --git a/media/java/android/media/session/PlaybackState.java b/media/java/android/media/session/PlaybackState.java index 8dd61276f75f..b1a88ed16bcd 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<PlaybackState> CREATOR = new Parcelable.Creator<PlaybackState>() { @Override diff --git a/non-updatable-api/module-lib-current.txt b/non-updatable-api/module-lib-current.txt index 6e3cec6a4f1f..5bbdb28ffd57 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 793cfcd77414..f9973529a120 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; } /** |