Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df26651f authored by RoboErik's avatar RoboErik Committed by Android (Google) Code Review
Browse files

Merge "Allow null queues to be set in MediaSession" into lmp-dev

parents 864a8b66 03fce072
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -204,7 +204,8 @@ public class Media extends BaseCommand {

        @Override
        public void onQueueChanged(ParceledListSlice queue) throws RemoteException {
            System.out.println("onQueueChanged, size=" + queue.getList().size());
            System.out.println("onQueueChanged, "
                    + (queue == null ? "null queue" : " size=" + queue.getList().size()));
        }

        @Override
+2 −1
Original line number Diff line number Diff line
@@ -918,7 +918,8 @@ public final class MediaController {

        @Override
        public void onQueueChanged(ParceledListSlice parceledQueue) {
            List<MediaSession.QueueItem> queue = parceledQueue.getList();
            List<MediaSession.QueueItem> queue = parceledQueue == null ? null : parceledQueue
                    .getList();
            MediaController controller = mController.get();
            if (controller != null) {
                controller.postMessage(MSG_UPDATE_QUEUE, queue, null);
+1 −1
Original line number Diff line number Diff line
@@ -427,7 +427,7 @@ public final class MediaSession {
     */
    public void setQueue(@Nullable List<QueueItem> queue) {
        try {
            mBinder.setQueue(new ParceledListSlice<QueueItem>(queue));
            mBinder.setQueue(queue == null ? null : new ParceledListSlice<QueueItem>(queue));
        } catch (RemoteException e) {
            Log.wtf("Dead object in setQueue.", e);
        }
+12 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.media.MediaMetadata;
import android.media.session.MediaSession;
import android.media.session.MediaSession.QueueItem;
import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState;
import android.os.Bundle;
@@ -44,6 +45,8 @@ public class PlayerSession {
    protected MediaSession.Callback mCallback;
    protected Renderer.Listener mRenderListener;
    protected MediaMetadata.Builder mMetadataBuilder;
    protected ArrayList<MediaSession.QueueItem> mQueue;
    protected boolean mUseQueue;

    protected PlaybackState mPlaybackState;
    protected Listener mListener;
@@ -58,6 +61,7 @@ public class PlayerSession {
        PlaybackState.Builder psBob = new PlaybackState.Builder();
        psBob.setActions(PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_PLAY);
        mPlaybackState = psBob.build();
        mQueue = new ArrayList<MediaSession.QueueItem>();

        mRenderer.registerListener(mRenderListener);

@@ -114,6 +118,8 @@ public class PlayerSession {

    public void setIcon(Bitmap icon) {
        mMetadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_DISPLAY_ICON, icon);
        mQueue.clear();
        mQueue.add(new QueueItem(mMetadataBuilder.build().getDescription(), 11));
        updateMetadata();
    }

@@ -122,6 +128,10 @@ public class PlayerSession {
        // code
        if (mSession != null && mSession.isActive()) {
            mSession.setMetadata(mMetadataBuilder.build());
            // Just toggle the queue every time we update for testing
            mSession.setQueue(mUseQueue ? mQueue : null);
            mSession.setQueueTitle(mUseQueue ? "Queue title" : null);
            mUseQueue = !mUseQueue;
        }
    }

@@ -141,6 +151,8 @@ public class PlayerSession {
                "OneMedia display title");
        mMetadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_SUBTITLE,
                "OneMedia display subtitle");

        mQueue.add(new QueueItem(mMetadataBuilder.build().getDescription(), 11));
    }

    public interface Listener {