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

Commit 7dccfdd8 authored by Hyundo Moon's avatar Hyundo Moon Committed by Jaewan Kim
Browse files

MediaSession2: Implement getPlayerState/Position/BufferedPosition

Bug: 74578458
Test: Passed CTS
Change-Id: If6f7254af58ffdf1990517bd2108e21479031be9
parent 44648206
Loading
Loading
Loading
Loading
+34 −0
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@ import android.media.MediaLibraryService2;
import android.media.MediaMetadata2;
import android.media.MediaMetadata2;
import android.media.MediaPlayerBase;
import android.media.MediaPlayerBase;
import android.media.MediaPlayerBase.PlayerEventCallback;
import android.media.MediaPlayerBase.PlayerEventCallback;
import android.media.MediaPlayerBase.PlayerState;
import android.media.MediaPlaylistAgent;
import android.media.MediaPlaylistAgent;
import android.media.MediaPlaylistAgent.PlaylistEventCallback;
import android.media.MediaPlaylistAgent.PlaylistEventCallback;
import android.media.MediaSession2;
import android.media.MediaSession2;
@@ -654,6 +655,39 @@ public class MediaSession2Impl implements MediaSession2Provider {
        }
        }
    }
    }


    @Override
    public @PlayerState int getPlayerState_impl() {
        final MediaPlayerBase player = mPlayer;
        if (player != null) {
            return mPlayer.getPlayerState();
        } else if (DEBUG) {
            Log.d(TAG, "API calls after the close()", new IllegalStateException());
        }
        return MediaPlayerBase.PLAYER_STATE_ERROR;
    }

    @Override
    public long getPosition_impl() {
        final MediaPlayerBase player = mPlayer;
        if (player != null) {
            return mPlayer.getCurrentPosition();
        } else if (DEBUG) {
            Log.d(TAG, "API calls after the close()", new IllegalStateException());
        }
        return MediaPlayerBase.UNKNOWN_TIME;
    }

    @Override
    public long getBufferedPosition_impl() {
        final MediaPlayerBase player = mPlayer;
        if (player != null) {
            return mPlayer.getBufferedPosition();
        } else if (DEBUG) {
            Log.d(TAG, "API calls after the close()", new IllegalStateException());
        }
        return MediaPlayerBase.UNKNOWN_TIME;
    }

    @Override
    @Override
    public void notifyError_impl(int errorCode, Bundle extras) {
    public void notifyError_impl(int errorCode, Bundle extras) {
        // TODO(jaewan): Implement
        // TODO(jaewan): Implement
+1 −1
Original line number Original line Diff line number Diff line
@@ -389,7 +389,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub {
                //       use thread poll for incoming calls.
                //       use thread poll for incoming calls.
                final int playerState = session.getInstance().getPlayerState();
                final int playerState = session.getInstance().getPlayerState();
                final long positionEventTimeMs = System.currentTimeMillis();
                final long positionEventTimeMs = System.currentTimeMillis();
                final long positionMs = session.getInstance().getCurrentPosition();
                final long positionMs = session.getInstance().getPosition();
                final float playbackSpeed = session.getInstance().getPlaybackSpeed();
                final float playbackSpeed = session.getInstance().getPlaybackSpeed();
                final long bufferedPositionMs = session.getInstance().getBufferedPosition();
                final long bufferedPositionMs = session.getInstance().getBufferedPosition();
                final Bundle playbackInfoBundle = ((MediaController2Impl.PlaybackInfoImpl)
                final Bundle playbackInfoBundle = ((MediaController2Impl.PlaybackInfoImpl)