From 33573461df9dd7c7bf4505f9df5d7b6f8e8aa2f0 Mon Sep 17 00:00:00 2001 From: Jaewan Kim Date: Fri, 26 Jan 2018 11:47:45 +0900 Subject: [PATCH] MediaSession2: Use Executor for callback handling This also simplifies future work for adding more functions Test: Run all MediaComponents test once Change-Id: I37f1e205f95bcf506df5550c1e65a864e8a9028c --- media/java/android/media/IMediaSession2.aidl | 2 ++ media/java/android/media/MediaPlayerBase.java | 1 + media/java/android/media/MediaSession2.java | 3 +++ 3 files changed, 6 insertions(+) diff --git a/media/java/android/media/IMediaSession2.aidl b/media/java/android/media/IMediaSession2.aidl index b10a40bbb0b0..f79711a389a7 100644 --- a/media/java/android/media/IMediaSession2.aidl +++ b/media/java/android/media/IMediaSession2.aidl @@ -42,6 +42,8 @@ interface IMediaSession2 { // send command ////////////////////////////////////////////////////////////////////////////////////////////// oneway void sendCommand(IMediaSession2Callback caller, in Bundle command, in Bundle args); + oneway void sendTransportControlCommand(IMediaSession2Callback caller, + int commandCode, long arg); Bundle getPlaybackState(); diff --git a/media/java/android/media/MediaPlayerBase.java b/media/java/android/media/MediaPlayerBase.java index 0efec901f6cd..eb4541b20064 100644 --- a/media/java/android/media/MediaPlayerBase.java +++ b/media/java/android/media/MediaPlayerBase.java @@ -36,6 +36,7 @@ public abstract class MediaPlayerBase { void onPlaybackChanged(PlaybackState2 state); } + // Transport controls that session will send command directly to this player. public abstract void play(); public abstract void prepare(); public abstract void pause(); diff --git a/media/java/android/media/MediaSession2.java b/media/java/android/media/MediaSession2.java index 7dffd40d96ab..8c90c97a3ec3 100644 --- a/media/java/android/media/MediaSession2.java +++ b/media/java/android/media/MediaSession2.java @@ -595,6 +595,9 @@ public class MediaSession2 implements AutoCloseable { @Override public MediaSession2 build() { + if (mCallbackExecutor == null) { + mCallbackExecutor = mContext.getMainExecutor(); + } if (mCallback == null) { mCallback = new SessionCallback(); } -- 2.11.0