From d1e6f6565257bd207b0907256ef3fb241005cae2 Mon Sep 17 00:00:00 2001 From: Sungsoo Lim Date: Wed, 23 Jan 2019 21:58:39 +0900 Subject: [PATCH] Handle remaining hidden API usages There are several hidden API usages from Media 1.0 APIs. To move Media 1.0 APIs into mainline module, this CL removes the unnecesarry usages or makes them as system APIs. Bug: 119539695 Test: pass MediaSessionTest and MediaControllerTest, and manually check whether SystemUI can control sessions. Change-Id: I824113229964ad9b5785ecd488b5851b0dace626 --- api/system-current.txt | 13 +++++++++++++ media/java/android/media/VolumeProvider.java | 3 +++ .../media/session/ControllerCallbackLink.java | 6 ------ media/java/android/media/session/MediaSession.java | 2 +- .../android/media/session/SessionCallbackLink.java | 6 ------ 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 0d7465c9fed34..16d76752e572c 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3389,6 +3389,15 @@ package android.media { method @NonNull public android.media.TimedMetaData.Builder setTimedMetaData(long, @NonNull byte[]); } + public abstract class VolumeProvider { + method public void setCallback(android.media.VolumeProvider.Callback); + } + + public abstract static class VolumeProvider.Callback { + ctor public VolumeProvider.Callback(); + method public abstract void onVolumeChanged(android.media.VolumeProvider); + } + } package android.media.audiopolicy { @@ -3564,6 +3573,10 @@ package android.media.session { method public void onSetMediaButtonEventDelegate(@NonNull android.media.session.MediaSessionEngine.MediaButtonEventDelegate); } + public static final class MediaSession.Token implements android.os.Parcelable { + method public android.media.session.ControllerLink getControllerLink(); + } + public final class MediaSessionEngine implements java.lang.AutoCloseable { ctor public MediaSessionEngine(@NonNull android.content.Context, @NonNull android.media.session.SessionLink, @NonNull android.media.session.SessionCallbackLink, @NonNull android.media.session.MediaSessionEngine.CallbackStub, int); method public void close(); diff --git a/media/java/android/media/VolumeProvider.java b/media/java/android/media/VolumeProvider.java index 1c017c564b43e..0297406e425a5 100644 --- a/media/java/android/media/VolumeProvider.java +++ b/media/java/android/media/VolumeProvider.java @@ -16,6 +16,7 @@ package android.media; import android.annotation.IntDef; +import android.annotation.SystemApi; import android.media.session.MediaSession; import java.lang.annotation.Retention; @@ -147,6 +148,7 @@ public abstract class VolumeProvider { * Sets a callback to receive volume changes. * @hide */ + @SystemApi public void setCallback(Callback callback) { mCallback = callback; } @@ -155,6 +157,7 @@ public abstract class VolumeProvider { * Listens for changes to the volume. * @hide */ + @SystemApi public static abstract class Callback { public abstract void onVolumeChanged(VolumeProvider volumeProvider); } diff --git a/media/java/android/media/session/ControllerCallbackLink.java b/media/java/android/media/session/ControllerCallbackLink.java index 2d59e442abf08..adc14a550b7d4 100644 --- a/media/java/android/media/session/ControllerCallbackLink.java +++ b/media/java/android/media/session/ControllerCallbackLink.java @@ -315,12 +315,6 @@ public final class ControllerCallbackLink implements Parcelable { } private void ensureMediaControlPermission() { - // Allow API calls from the System UI - if (mContext.checkCallingPermission(android.Manifest.permission.STATUS_BAR_SERVICE) - == PackageManager.PERMISSION_GRANTED) { - return; - } - // Check if it's system server or has MEDIA_CONTENT_CONTROL. // Note that system server doesn't have MEDIA_CONTENT_CONTROL, so we need extra // check here. diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index 4896d0803e420..1a185e982cf12 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -481,7 +481,7 @@ public final class MediaSession { * @hide */ @SystemApi - ControllerLink getControllerLink() { + public ControllerLink getControllerLink() { return mControllerLink; } diff --git a/media/java/android/media/session/SessionCallbackLink.java b/media/java/android/media/session/SessionCallbackLink.java index 0dbf427b048dd..3bcb65c420106 100644 --- a/media/java/android/media/session/SessionCallbackLink.java +++ b/media/java/android/media/session/SessionCallbackLink.java @@ -944,12 +944,6 @@ public final class SessionCallbackLink implements Parcelable { } private void ensureMediaControlPermission() { - // Allow API calls from the System UI - if (mContext.checkCallingPermission(android.Manifest.permission.STATUS_BAR_SERVICE) - == PackageManager.PERMISSION_GRANTED) { - return; - } - // Check if it's system server or has MEDIA_CONTENT_CONTROL. // Note that system server doesn't have MEDIA_CONTENT_CONTROL, so we need extra // check here.