Refactor transport controls APIs

This merges TransportPerformer into MediaSession + a
TransportControlsCallback and makes TransportController into an
inner class on MediaController called TransportControls. Also makes
the PlaybackState and Metadata part of the session APIs instead of
transport controls.

Change-Id: I16ad392e6d318abe3119ad5d89656d253af25e16
This commit is contained in:
RoboErik
2014-05-28 17:36:42 -07:00
parent 79fa4630bb
commit c47fa84b0a
10 changed files with 627 additions and 897 deletions

View File

@@ -27,7 +27,6 @@ import android.graphics.RectF;
import android.media.session.MediaSessionLegacyHelper;
import android.media.session.PlaybackState;
import android.media.session.MediaSession;
import android.media.session.TransportPerformer;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -584,7 +583,7 @@ public class RemoteControlClient
// USE_SESSIONS
if (mSession != null && mMetadataBuilder != null) {
mSession.getTransportPerformer().setMetadata(mMetadataBuilder.build());
mSession.setMetadata(mMetadataBuilder.build());
}
mApplied = true;
}
@@ -702,7 +701,7 @@ public class RemoteControlClient
mSessionPlaybackState.setState(pbState, hasPosition ?
mPlaybackPositionMs : PlaybackState.PLAYBACK_POSITION_UNKNOWN,
playbackSpeed);
mSession.getTransportPerformer().setPlaybackState(mSessionPlaybackState);
mSession.setPlaybackState(mSessionPlaybackState);
}
}
}
@@ -789,7 +788,7 @@ public class RemoteControlClient
if (mSession != null) {
mSessionPlaybackState.setActions(PlaybackState
.getActionsFromRccControlFlags(transportControlFlags));
mSession.getTransportPerformer().setPlaybackState(mSessionPlaybackState);
mSession.setPlaybackState(mSessionPlaybackState);
}
}
}
@@ -1317,7 +1316,8 @@ public class RemoteControlClient
}
// USE_SESSIONS
private TransportPerformer.Callback mTransportListener = new TransportPerformer.Callback() {
private MediaSession.TransportControlsCallback mTransportListener
= new MediaSession.TransportControlsCallback() {
@Override
public void onSeekTo(long pos) {