Loading api/current.txt +45 −0 Original line number Diff line number Diff line Loading @@ -27142,6 +27142,21 @@ package android.media.projection { package android.media.session { public final class ControllerCallbackLink implements android.os.Parcelable { method public int describeContents(); method public android.os.IBinder getBinder(); method public void notifyEvent(java.lang.String, android.os.Bundle); method public void notifyExtrasChanged(android.os.Bundle); method public void notifyMetadataChanged(android.media.MediaMetadata); method public void notifyPlaybackStateChanged(android.media.session.PlaybackState); method public void notifyQueueChanged(java.util.List<android.media.session.MediaSession.QueueItem>); method public void notifyQueueTitleChanged(java.lang.CharSequence); method public void notifySessionDestroyed(); method public void notifyVolumeInfoChanged(android.media.session.MediaController.PlaybackInfo); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.media.session.ControllerCallbackLink> CREATOR; } public final class MediaController { ctor public MediaController(android.content.Context, android.media.session.MediaSession.Token); method public void adjustVolume(int, int); Loading Loading @@ -27376,6 +27391,36 @@ package android.media.session { method public android.media.session.PlaybackState.CustomAction.Builder setExtras(android.os.Bundle); } public final class SessionCallbackLink implements android.os.Parcelable { method public int describeContents(); method public android.os.IBinder getBinder(); method public void notifyAdjustVolume(java.lang.String, int, int, android.media.session.ControllerCallbackLink, int); method public void notifyCommand(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle, android.os.ResultReceiver); method public void notifyCustomAction(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyFastForward(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyMediaButton(java.lang.String, int, int, android.content.Intent, int, android.os.ResultReceiver); method public void notifyMediaButtonFromController(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.content.Intent); method public void notifyNext(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPause(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPlay(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPlayFromMediaId(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPlayFromSearch(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPlayFromUri(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.net.Uri, android.os.Bundle); method public void notifyPrepare(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPrepareFromMediaId(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPrepareFromSearch(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPrepareFromUri(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.net.Uri, android.os.Bundle); method public void notifyPrevious(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyRate(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.media.Rating); method public void notifyRewind(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifySeekTo(java.lang.String, int, int, android.media.session.ControllerCallbackLink, long); method public void notifySetVolumeTo(java.lang.String, int, int, android.media.session.ControllerCallbackLink, int); method public void notifySkipToTrack(java.lang.String, int, int, android.media.session.ControllerCallbackLink, long); method public void notifyStop(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.media.session.SessionCallbackLink> CREATOR; } } package android.media.tv { api/system-current.txt +16 −0 Original line number Diff line number Diff line Loading @@ -3214,6 +3214,22 @@ package android.media.audiopolicy { package android.media.session { public final class ControllerCallbackLink implements android.os.Parcelable { ctor public ControllerCallbackLink(android.media.session.ControllerCallbackLink.CallbackStub); } public static abstract class ControllerCallbackLink.CallbackStub { ctor public ControllerCallbackLink.CallbackStub(); method public void onEvent(java.lang.String, android.os.Bundle); method public void onExtrasChanged(android.os.Bundle); method public void onMetadataChanged(android.media.MediaMetadata); method public void onPlaybackStateChanged(android.media.session.PlaybackState); method public void onQueueChanged(java.util.List<android.media.session.MediaSession.QueueItem>); method public void onQueueTitleChanged(java.lang.CharSequence); method public void onSessionDestroyed(); method public void onVolumeInfoChanged(android.media.session.MediaController.PlaybackInfo); } public final class MediaSessionManager { method public void setOnMediaKeyListener(android.media.session.MediaSessionManager.OnMediaKeyListener, android.os.Handler); method public void setOnVolumeKeyLongPressListener(android.media.session.MediaSessionManager.OnVolumeKeyLongPressListener, android.os.Handler); Loading cmds/media/src/com/android/commands/media/Media.java +20 −16 Original line number Diff line number Diff line Loading @@ -19,12 +19,12 @@ package com.android.commands.media; import android.app.ActivityManager; import android.content.Context; import android.content.pm.ParceledListSlice; import android.media.MediaMetadata; import android.media.session.ControllerCallbackLink; import android.media.session.ISessionController; import android.media.session.ISessionControllerCallback; import android.media.session.ISessionManager; import android.media.session.MediaController.PlaybackInfo; import android.media.session.MediaSession.QueueItem; import android.media.session.PlaybackState; import android.os.Bundle; import android.os.HandlerThread; Loading Loading @@ -178,13 +178,7 @@ public class Media extends BaseCommand { KeyCharacterMap.VIRTUAL_KEYBOARD, 0, 0, InputDevice.SOURCE_KEYBOARD)); } class ControllerMonitor extends ISessionControllerCallback.Stub { private final ISessionController mController; public ControllerMonitor(ISessionController controller) { mController = controller; } class ControllerCallbackStub extends ControllerCallbackLink.CallbackStub { @Override public void onSessionDestroyed() { System.out.println("onSessionDestroyed. Enter q to quit."); Loading @@ -208,25 +202,35 @@ public class Media extends BaseCommand { } @Override public void onQueueChanged(ParceledListSlice queue) throws RemoteException { public void onQueueChanged(List<QueueItem> queue) { System.out.println("onQueueChanged, " + (queue == null ? "null queue" : " size=" + queue.getList().size())); + (queue == null ? "null queue" : " size=" + queue.size())); } @Override public void onQueueTitleChanged(CharSequence title) throws RemoteException { public void onQueueTitleChanged(CharSequence title) { System.out.println("onQueueTitleChange " + title); } @Override public void onExtrasChanged(Bundle extras) throws RemoteException { public void onExtrasChanged(Bundle extras) { System.out.println("onExtrasChanged " + extras); } @Override public void onVolumeInfoChanged(PlaybackInfo info) throws RemoteException { public void onVolumeInfoChanged(PlaybackInfo info) { System.out.println("onVolumeInfoChanged " + info); } } private class ControllerMonitor { private final ISessionController mController; private final ControllerCallbackLink mControllerCallbackLink; ControllerMonitor(ISessionController controller) { mController = controller; mControllerCallbackLink = new ControllerCallbackLink(new ControllerCallbackStub()); } void printUsageMessage() { try { Loading @@ -244,7 +248,7 @@ public class Media extends BaseCommand { @Override protected void onLooperPrepared() { try { mController.registerCallbackListener(PACKAGE_NAME, ControllerMonitor.this); mController.registerCallbackListener(PACKAGE_NAME, mControllerCallbackLink); } catch (RemoteException e) { System.out.println("Error registering monitor callback"); } Loading Loading @@ -287,7 +291,7 @@ public class Media extends BaseCommand { } finally { cbThread.getLooper().quit(); try { mController.unregisterCallbackListener(this); mController.unregisterCallbackListener(mControllerCallbackLink); } catch (Exception e) { // ignoring } Loading media/java/android/media/Session2Token.java +1 −1 Original line number Diff line number Diff line Loading @@ -171,7 +171,7 @@ public final class Session2Token implements Parcelable { dest.writeString(mPackageName); dest.writeString(mServiceName); // TODO: Uncomment below //dest.writeStrongBinder(mSessionLink.asBinder()); //dest.writeStrongBinder(mSessionLink.getBinder()); dest.writeString(mComponentName == null ? "" : mComponentName.flattenToString()); } Loading media/java/android/media/session/ControllerCallbackLink.aidl 0 → 100644 +18 −0 Original line number Diff line number Diff line /* * Copyright 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.session; parcelable ControllerCallbackLink; Loading
api/current.txt +45 −0 Original line number Diff line number Diff line Loading @@ -27142,6 +27142,21 @@ package android.media.projection { package android.media.session { public final class ControllerCallbackLink implements android.os.Parcelable { method public int describeContents(); method public android.os.IBinder getBinder(); method public void notifyEvent(java.lang.String, android.os.Bundle); method public void notifyExtrasChanged(android.os.Bundle); method public void notifyMetadataChanged(android.media.MediaMetadata); method public void notifyPlaybackStateChanged(android.media.session.PlaybackState); method public void notifyQueueChanged(java.util.List<android.media.session.MediaSession.QueueItem>); method public void notifyQueueTitleChanged(java.lang.CharSequence); method public void notifySessionDestroyed(); method public void notifyVolumeInfoChanged(android.media.session.MediaController.PlaybackInfo); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.media.session.ControllerCallbackLink> CREATOR; } public final class MediaController { ctor public MediaController(android.content.Context, android.media.session.MediaSession.Token); method public void adjustVolume(int, int); Loading Loading @@ -27376,6 +27391,36 @@ package android.media.session { method public android.media.session.PlaybackState.CustomAction.Builder setExtras(android.os.Bundle); } public final class SessionCallbackLink implements android.os.Parcelable { method public int describeContents(); method public android.os.IBinder getBinder(); method public void notifyAdjustVolume(java.lang.String, int, int, android.media.session.ControllerCallbackLink, int); method public void notifyCommand(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle, android.os.ResultReceiver); method public void notifyCustomAction(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyFastForward(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyMediaButton(java.lang.String, int, int, android.content.Intent, int, android.os.ResultReceiver); method public void notifyMediaButtonFromController(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.content.Intent); method public void notifyNext(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPause(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPlay(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPlayFromMediaId(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPlayFromSearch(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPlayFromUri(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.net.Uri, android.os.Bundle); method public void notifyPrepare(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyPrepareFromMediaId(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPrepareFromSearch(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle); method public void notifyPrepareFromUri(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.net.Uri, android.os.Bundle); method public void notifyPrevious(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifyRate(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.media.Rating); method public void notifyRewind(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void notifySeekTo(java.lang.String, int, int, android.media.session.ControllerCallbackLink, long); method public void notifySetVolumeTo(java.lang.String, int, int, android.media.session.ControllerCallbackLink, int); method public void notifySkipToTrack(java.lang.String, int, int, android.media.session.ControllerCallbackLink, long); method public void notifyStop(java.lang.String, int, int, android.media.session.ControllerCallbackLink); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.media.session.SessionCallbackLink> CREATOR; } } package android.media.tv {
api/system-current.txt +16 −0 Original line number Diff line number Diff line Loading @@ -3214,6 +3214,22 @@ package android.media.audiopolicy { package android.media.session { public final class ControllerCallbackLink implements android.os.Parcelable { ctor public ControllerCallbackLink(android.media.session.ControllerCallbackLink.CallbackStub); } public static abstract class ControllerCallbackLink.CallbackStub { ctor public ControllerCallbackLink.CallbackStub(); method public void onEvent(java.lang.String, android.os.Bundle); method public void onExtrasChanged(android.os.Bundle); method public void onMetadataChanged(android.media.MediaMetadata); method public void onPlaybackStateChanged(android.media.session.PlaybackState); method public void onQueueChanged(java.util.List<android.media.session.MediaSession.QueueItem>); method public void onQueueTitleChanged(java.lang.CharSequence); method public void onSessionDestroyed(); method public void onVolumeInfoChanged(android.media.session.MediaController.PlaybackInfo); } public final class MediaSessionManager { method public void setOnMediaKeyListener(android.media.session.MediaSessionManager.OnMediaKeyListener, android.os.Handler); method public void setOnVolumeKeyLongPressListener(android.media.session.MediaSessionManager.OnVolumeKeyLongPressListener, android.os.Handler); Loading
cmds/media/src/com/android/commands/media/Media.java +20 −16 Original line number Diff line number Diff line Loading @@ -19,12 +19,12 @@ package com.android.commands.media; import android.app.ActivityManager; import android.content.Context; import android.content.pm.ParceledListSlice; import android.media.MediaMetadata; import android.media.session.ControllerCallbackLink; import android.media.session.ISessionController; import android.media.session.ISessionControllerCallback; import android.media.session.ISessionManager; import android.media.session.MediaController.PlaybackInfo; import android.media.session.MediaSession.QueueItem; import android.media.session.PlaybackState; import android.os.Bundle; import android.os.HandlerThread; Loading Loading @@ -178,13 +178,7 @@ public class Media extends BaseCommand { KeyCharacterMap.VIRTUAL_KEYBOARD, 0, 0, InputDevice.SOURCE_KEYBOARD)); } class ControllerMonitor extends ISessionControllerCallback.Stub { private final ISessionController mController; public ControllerMonitor(ISessionController controller) { mController = controller; } class ControllerCallbackStub extends ControllerCallbackLink.CallbackStub { @Override public void onSessionDestroyed() { System.out.println("onSessionDestroyed. Enter q to quit."); Loading @@ -208,25 +202,35 @@ public class Media extends BaseCommand { } @Override public void onQueueChanged(ParceledListSlice queue) throws RemoteException { public void onQueueChanged(List<QueueItem> queue) { System.out.println("onQueueChanged, " + (queue == null ? "null queue" : " size=" + queue.getList().size())); + (queue == null ? "null queue" : " size=" + queue.size())); } @Override public void onQueueTitleChanged(CharSequence title) throws RemoteException { public void onQueueTitleChanged(CharSequence title) { System.out.println("onQueueTitleChange " + title); } @Override public void onExtrasChanged(Bundle extras) throws RemoteException { public void onExtrasChanged(Bundle extras) { System.out.println("onExtrasChanged " + extras); } @Override public void onVolumeInfoChanged(PlaybackInfo info) throws RemoteException { public void onVolumeInfoChanged(PlaybackInfo info) { System.out.println("onVolumeInfoChanged " + info); } } private class ControllerMonitor { private final ISessionController mController; private final ControllerCallbackLink mControllerCallbackLink; ControllerMonitor(ISessionController controller) { mController = controller; mControllerCallbackLink = new ControllerCallbackLink(new ControllerCallbackStub()); } void printUsageMessage() { try { Loading @@ -244,7 +248,7 @@ public class Media extends BaseCommand { @Override protected void onLooperPrepared() { try { mController.registerCallbackListener(PACKAGE_NAME, ControllerMonitor.this); mController.registerCallbackListener(PACKAGE_NAME, mControllerCallbackLink); } catch (RemoteException e) { System.out.println("Error registering monitor callback"); } Loading Loading @@ -287,7 +291,7 @@ public class Media extends BaseCommand { } finally { cbThread.getLooper().quit(); try { mController.unregisterCallbackListener(this); mController.unregisterCallbackListener(mControllerCallbackLink); } catch (Exception e) { // ignoring } Loading
media/java/android/media/Session2Token.java +1 −1 Original line number Diff line number Diff line Loading @@ -171,7 +171,7 @@ public final class Session2Token implements Parcelable { dest.writeString(mPackageName); dest.writeString(mServiceName); // TODO: Uncomment below //dest.writeStrongBinder(mSessionLink.asBinder()); //dest.writeStrongBinder(mSessionLink.getBinder()); dest.writeString(mComponentName == null ? "" : mComponentName.flattenToString()); } Loading
media/java/android/media/session/ControllerCallbackLink.aidl 0 → 100644 +18 −0 Original line number Diff line number Diff line /* * Copyright 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.session; parcelable ControllerCallbackLink;