Example usage for android.support.v4.media.session PlaybackStateCompat getState

List of usage examples for android.support.v4.media.session PlaybackStateCompat getState

Introduction

In this page you can find the example usage for android.support.v4.media.session PlaybackStateCompat getState.

Prototype

@State
public int getState() 

Source Link

Document

Get the current state of playback.

Usage

From source file:com.appdevper.mediaplayer.activity.FullScreenPlayerActivity.java

private void connectToSession(MediaSessionCompat.Token token) throws RemoteException {
    MediaControllerCompat mediaController = new MediaControllerCompat(FullScreenPlayerActivity.this, token);
    if (mediaController.getMetadata() == null) {
        finish();/*from   w  ww  .j ava2  s  .  c o m*/
        return;
    }
    setSupportMediaController(mediaController);
    mediaController.registerCallback(mCallback);
    PlaybackStateCompat state = mediaController.getPlaybackState();
    updatePlaybackState(state);
    MediaMetadataCompat metadata = mediaController.getMetadata();
    if (metadata != null) {
        updateMediaDescription(metadata.getDescription());
        updateDuration(metadata);
    }
    updateProgress();
    if (state != null && (state.getState() == PlaybackState.STATE_PLAYING
            || state.getState() == PlaybackState.STATE_BUFFERING)) {
        scheduleSeekbarUpdate();
    }
}

From source file:com.murati.oszk.audiobook.ui.FullScreenPlayerActivity.java

private void connectToSession(MediaSessionCompat.Token token) throws RemoteException {
    MediaControllerCompat mediaController = new MediaControllerCompat(FullScreenPlayerActivity.this, token);
    if (mediaController.getMetadata() == null) {
        finish();//from   w  w w  .j  a  v a2 s. c  o  m
        return;
    }
    MediaControllerCompat.setMediaController(FullScreenPlayerActivity.this, mediaController);
    mediaController.registerCallback(mCallback);
    PlaybackStateCompat state = mediaController.getPlaybackState();
    updatePlaybackState(state);
    MediaMetadataCompat metadata = mediaController.getMetadata();
    if (metadata != null) {
        updateMediaDescription(metadata.getDescription());
        updateDuration(metadata);
    }
    updateProgress();
    if (state != null && (state.getState() == PlaybackStateCompat.STATE_PLAYING
            || state.getState() == PlaybackStateCompat.STATE_BUFFERING)) {
        scheduleSeekbarUpdate();
    }
}

From source file:com.torrenttunes.android.ui.FullScreenPlayerActivity.java

private void connectToSession(MediaSessionCompat.Token token) {

    try {//ww w  . ja v a2  s  . co  m

        mMediaController = new MediaControllerCompat(FullScreenPlayerActivity.this, token);

        if (mMediaController.getMetadata() == null) {
            finish();
            return;
        }

        mMediaController.registerCallback(mCallback);
        PlaybackStateCompat state = mMediaController.getPlaybackState();
        updatePlaybackState(state);
        MediaMetadataCompat metadata = mMediaController.getMetadata();
        if (metadata != null) {
            updateMediaDescription(metadata.getDescription());
            updateDuration(metadata);
        }
        updateProgress();
        if (state != null && (state.getState() == PlaybackStateCompat.STATE_PLAYING
                || state.getState() == PlaybackStateCompat.STATE_BUFFERING)) {
            scheduleSeekbarUpdate();
        }

    } catch (RemoteException e) {
        e.printStackTrace();
    }
}

From source file:rocks.stalin.android.app.ui.FullScreenPlayerActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_full_player);
    initializeToolbar();//  w ww . j a  v  a  2 s.co m
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("");
    }

    mBackgroundImage = (ImageView) findViewById(R.id.background_image);
    mPauseDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_pause_white_48dp);
    mPlayDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_play_arrow_white_48dp);
    mPlayPause = (ImageView) findViewById(R.id.play_pause);
    mSkipNext = (ImageView) findViewById(R.id.next);
    mSkipPrev = (ImageView) findViewById(R.id.prev);
    mStart = (TextView) findViewById(R.id.startText);
    mEnd = (TextView) findViewById(R.id.endText);
    mSeekbar = (SeekBar) findViewById(R.id.seekBar1);
    mLine1 = (TextView) findViewById(R.id.line1);
    mLine2 = (TextView) findViewById(R.id.line2);
    mLine3 = (TextView) findViewById(R.id.line3);
    mLoading = (ProgressBar) findViewById(R.id.progressBar1);
    mControllers = findViewById(R.id.controllers);

    final FullScreenPlayerActivity mSelf = this;

    mSkipNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaControllerCompat.TransportControls controls = MediaControllerCompat.getMediaController(mSelf)
                    .getTransportControls();
            controls.skipToNext();
        }
    });

    mSkipPrev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaControllerCompat.TransportControls controls = MediaControllerCompat.getMediaController(mSelf)
                    .getTransportControls();
            controls.skipToPrevious();
        }
    });

    mPlayPause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            PlaybackStateCompat state = MediaControllerCompat.getMediaController(mSelf).getPlaybackState();
            if (state != null) {
                MediaControllerCompat.TransportControls controls = MediaControllerCompat
                        .getMediaController(mSelf).getTransportControls();
                switch (state.getState()) {
                case PlaybackStateCompat.STATE_PLAYING: // fall through
                case PlaybackStateCompat.STATE_BUFFERING:
                    controls.pause();
                    stopSeekbarUpdate();
                    break;
                case PlaybackStateCompat.STATE_PAUSED:
                case PlaybackStateCompat.STATE_STOPPED:
                    controls.play();
                    scheduleSeekbarUpdate();
                    break;
                default:
                    LogHelper.d(TAG, "onClick with state ", state.getState());
                }
            }
        }
    });

    mSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            mStart.setText(DateUtils.formatElapsedTime(progress / 1000));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            stopSeekbarUpdate();
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            MediaControllerCompat.getMediaController(mSelf).getTransportControls()
                    .seekTo(seekBar.getProgress());
            scheduleSeekbarUpdate();
        }
    });

    // Only update from the intent if we are not recreating from a config change:
    if (savedInstanceState == null) {
        updateFromParams(getIntent());
    }

    mMediaBrowser = new MediaBrowserCompat(this, new ComponentName(this, MusicService.class),
            mConnectionCallback, null);
}

From source file:com.pi.android.brainbeats.ui.FullScreenPlayerActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_full_player);
    initializeToolbar();//  ww  w.  j  a  v  a  2s .com
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("");
    }

    mBackgroundImage = (ImageView) findViewById(R.id.background_image);
    mPauseDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_pause_white_48dp);
    mPlayDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_play_arrow_white_48dp);
    mPlayPause = (ImageView) findViewById(R.id.play_pause);
    mBBOn = ContextCompat.getDrawable(this, R.drawable.uamp_ic_pause_white_48dp);
    mBBOff = ContextCompat.getDrawable(this, R.drawable.ic_bb_on_36dp);
    mBB = (ImageView) findViewById(R.id.BB);
    mSkipNext = (ImageView) findViewById(R.id.next);
    mSkipPrev = (ImageView) findViewById(R.id.prev);
    mStart = (TextView) findViewById(R.id.startText);
    mEnd = (TextView) findViewById(R.id.endText);
    mSeekbar = (SeekBar) findViewById(R.id.seekBar1);
    mLine1 = (TextView) findViewById(R.id.line1);
    mLine2 = (TextView) findViewById(R.id.line2);
    mLine3 = (TextView) findViewById(R.id.line3);
    mLoading = (ProgressBar) findViewById(R.id.progressBar1);
    mControllers = findViewById(R.id.controllers);

    mSkipNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (brainMode) {
                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToPrevious();
            } else {

                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToNext();
            }
        }
    });

    mSkipPrev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!brainMode) {
                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToPrevious();
            } else {

                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToNext();
            }
        }
    });

    mBB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (brainMode) {
                brainMode = false;
                Log.e("BRAINBEATS MODE", "OFF");
                mBB.setImageResource(R.drawable.ic_bb_on_36dp);
            } else {
                brainMode = true;
                Log.e("BRAINBEATS MODE", "ON");
                mBB.setImageResource(R.drawable.ic_bb_off_36dp);
            }

        }
    });

    mPlayPause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            PlaybackStateCompat state = getSupportMediaController().getPlaybackState();
            if (state != null) {
                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                switch (state.getState()) {
                case PlaybackStateCompat.STATE_PLAYING: // fall through
                case PlaybackStateCompat.STATE_BUFFERING:
                    controls.pause();
                    stopSeekbarUpdate();
                    break;
                case PlaybackStateCompat.STATE_PAUSED:
                case PlaybackStateCompat.STATE_STOPPED:
                    controls.play();
                    scheduleSeekbarUpdate();
                    break;
                default:
                    LogHelper.d(TAG, "onClick with state ", state.getState());
                }
            }
        }
    });

    mSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            mStart.setText(DateUtils.formatElapsedTime(progress / 1000));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            stopSeekbarUpdate();
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            getSupportMediaController().getTransportControls().seekTo(seekBar.getProgress());
            scheduleSeekbarUpdate();
        }
    });

    // Only update from the intent if we are not recreating from a config change:
    if (savedInstanceState == null) {
        updateFromParams(getIntent());
    }

    mMediaBrowser = new MediaBrowserCompat(this, new ComponentName(this, MusicService.class),
            mConnectionCallback, null);
}

From source file:com.scooter1556.sms.android.activity.FullScreenPlayerActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_full_screen_player);
    initialiseToolbar();//ww w  . j  a  v  a2s.  c om
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("");
    }

    backgroundImage = (ImageView) findViewById(R.id.background_image);
    pauseDrawable = ContextCompat.getDrawable(this, R.drawable.ic_pause_white_48dp);
    playDrawable = ContextCompat.getDrawable(this, R.drawable.ic_play_arrow_white_48dp);
    playPause = (ImageView) findViewById(R.id.play_pause);
    skipNext = (ImageView) findViewById(R.id.next);
    skipPrev = (ImageView) findViewById(R.id.prev);
    shuffle = (ImageView) findViewById(R.id.shuffle);
    repeat = (ImageView) findViewById(R.id.repeat);
    start = (TextView) findViewById(R.id.startText);
    end = (TextView) findViewById(R.id.endText);
    seekbar = (SeekBar) findViewById(R.id.seekBar);
    title = (TextView) findViewById(R.id.title);
    subtitle = (TextView) findViewById(R.id.subtitle);
    extra = (TextView) findViewById(R.id.extra);
    loading = (ProgressBar) findViewById(R.id.progressBar);
    controllers = findViewById(R.id.controllers);

    skipNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaControllerCompat.TransportControls controls = mediaController.getTransportControls();
            controls.skipToNext();
        }
    });

    skipPrev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaControllerCompat.TransportControls controls = mediaController.getTransportControls();
            controls.skipToPrevious();
        }
    });

    playPause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            PlaybackStateCompat state = mediaController.getPlaybackState();
            if (state != null) {
                MediaControllerCompat.TransportControls controls = mediaController.getTransportControls();
                switch (state.getState()) {
                case PlaybackStateCompat.STATE_PLAYING: // fall through
                case PlaybackStateCompat.STATE_BUFFERING:
                    controls.pause();
                    stopSeekbarUpdate();
                    break;
                case PlaybackStateCompat.STATE_PAUSED:
                case PlaybackStateCompat.STATE_STOPPED:
                    controls.play();
                    scheduleSeekbarUpdate();
                    break;
                }
            }
        }
    });

    shuffle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            PlaybackStateCompat state = mediaController.getPlaybackState();
            MediaControllerCompat.TransportControls controls = mediaController.getTransportControls();

            if (state == null) {
                return;
            }

            for (PlaybackStateCompat.CustomAction action : state.getCustomActions()) {
                switch (action.getAction()) {
                case MediaService.STATE_SHUFFLE_ON:
                    controls.sendCustomAction(MediaService.STATE_SHUFFLE_ON, null);
                    break;

                case MediaService.STATE_SHUFFLE_OFF:
                    controls.sendCustomAction(MediaService.STATE_SHUFFLE_OFF, null);
                    break;
                }
            }

            updatePlaybackState(state);
        }
    });

    repeat.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            PlaybackStateCompat state = mediaController.getPlaybackState();
            MediaControllerCompat.TransportControls controls = mediaController.getTransportControls();

            if (state == null) {
                return;
            }

            for (PlaybackStateCompat.CustomAction action : state.getCustomActions()) {
                switch (action.getAction()) {
                case MediaService.STATE_REPEAT_NONE:
                case MediaService.STATE_REPEAT_ALL:
                case MediaService.STATE_REPEAT_ONE:
                    controls.sendCustomAction(action.getAction(), null);
                    break;
                }
            }

            updatePlaybackState(state);
        }
    });

    seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            start.setText(DateUtils.formatElapsedTime(progress / 1000));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            stopSeekbarUpdate();
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            mediaController.getTransportControls().seekTo(seekBar.getProgress());
            scheduleSeekbarUpdate();
        }
    });

    // Only update from the intent if we are not recreating from a config change:
    if (savedInstanceState == null) {
        updateFromParams(getIntent());
    }

    mediaBrowser = new MediaBrowserCompat(this, new ComponentName(this, MediaService.class), connectionCallback,
            null);
}

From source file:com.example.android.AudioArchive.ui.FullScreenPlayerActivity.java

private void updatePlaybackState(PlaybackStateCompat state) {
    if (state == null) {
        return;/* ww w .j  av a2  s  .  c o m*/
    }
    if (getSupportMediaController() != null && getSupportMediaController().getExtras() != null) {
        String castName = getSupportMediaController().getExtras().getString(MusicService.EXTRA_CONNECTED_CAST);
        String line3Text = castName == null ? ""
                : getResources().getString(R.string.casting_to_device, castName);
        mLine3.setText(line3Text);
    }

    switch (state.getState()) {
    case PlaybackStateCompat.STATE_PLAYING:
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPauseDrawable);
        mControllers.setVisibility(VISIBLE);

        break;
    case PlaybackStateCompat.STATE_PAUSED:
        mControllers.setVisibility(VISIBLE);
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPlayDrawable);

        break;
    case PlaybackStateCompat.STATE_NONE:
    case PlaybackStateCompat.STATE_STOPPED:
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPlayDrawable);

        break;
    case PlaybackStateCompat.STATE_BUFFERING:
        mPlayPause.setVisibility(INVISIBLE);
        mLoading.setVisibility(VISIBLE);
        mLine3.setText(R.string.loading);

        break;
    default:
        LogHelper.d(TAG, "Unhandled state ", state.getState());
    }

    mSkipNext.setVisibility(
            (state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) == 0 ? INVISIBLE : VISIBLE);
    mSkipPrev.setVisibility(
            (state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) == 0 ? INVISIBLE : VISIBLE);
}

From source file:com.scooter1556.sms.android.activity.FullScreenPlayerActivity.java

private void connectToSession(MediaSessionCompat.Token token) throws RemoteException {
    mediaController = new MediaControllerCompat(FullScreenPlayerActivity.this, token);

    if (mediaController.getMetadata() == null) {
        finish();//from w w  w .j  ava  2 s  .c  om
        return;
    }

    MediaControllerCompat.setMediaController(this, mediaController);
    mediaController.registerCallback(callback);
    PlaybackStateCompat state = mediaController.getPlaybackState();
    updatePlaybackState(state);
    MediaMetadataCompat metadata = mediaController.getMetadata();

    if (metadata != null) {
        updateMediaDescription(metadata.getDescription());
        updateDuration(metadata);
    }

    updateProgress();

    if (state != null && (state.getState() == PlaybackStateCompat.STATE_PLAYING
            || state.getState() == PlaybackStateCompat.STATE_BUFFERING)) {
        scheduleSeekbarUpdate();
    }
}

From source file:com.torrenttunes.android.ui.FullScreenPlayerActivity.java

private void updatePlaybackState(PlaybackStateCompat state) {
    if (state == null) {
        return;//  ww  w  .ja  v  a2s  . co m
    }
    mLastPlaybackState = state;
    String castName = mMediaController.getExtras().getString(MusicService.EXTRA_CONNECTED_CAST);
    String line3Text = "";
    if (castName != null) {
        line3Text = getResources().getString(R.string.casting_to_device, castName);
    }
    mLine3.setText(line3Text);

    switch (state.getState()) {
    case PlaybackStateCompat.STATE_PLAYING:
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPauseDrawable);
        mControllers.setVisibility(VISIBLE);
        scheduleSeekbarUpdate();
        break;
    case PlaybackStateCompat.STATE_PAUSED:
        mControllers.setVisibility(VISIBLE);
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPlayDrawable);
        stopSeekbarUpdate();
        break;
    case PlaybackStateCompat.STATE_NONE:
    case PlaybackStateCompat.STATE_STOPPED:
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPlayDrawable);
        stopSeekbarUpdate();
        break;
    case PlaybackStateCompat.STATE_BUFFERING:
        mPlayPause.setVisibility(INVISIBLE);
        mLoading.setVisibility(VISIBLE);
        mLine3.setText(R.string.loading);
        stopSeekbarUpdate();
        break;
    default:
        LogHelper.d(TAG, "Unhandled state ", state.getState());
    }

    mSkipNext.setVisibility(
            (state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) == 0 ? INVISIBLE : VISIBLE);
    mSkipPrev.setVisibility(
            (state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) == 0 ? INVISIBLE : VISIBLE);
}

From source file:com.scooter1556.sms.android.fragment.tv.TvAudioPlayerFragment.java

private void updatePlaybackState(PlaybackStateCompat state) {
    if (state == null || playbackControlsRow == null) {
        return;//from   www .ja  v  a2 s  .  c om
    }

    lastPlaybackState = state;

    switch (state.getState()) {

    case PlaybackStateCompat.STATE_PLAYING:
        scheduleSeekbarUpdate();
        playPauseAction.setIndex(PlayPauseAction.PAUSE);
        break;

    case PlaybackStateCompat.STATE_PAUSED:
        stopSeekbarUpdate();
        playPauseAction.setIndex(PlayPauseAction.PLAY);
        break;

    case PlaybackStateCompat.STATE_NONE:
        stopSeekbarUpdate();
        playPauseAction.setIndex(PlayPauseAction.PLAY);
        resetPlaybackRow();
        updatePlayListRow();
        break;

    case PlaybackStateCompat.STATE_STOPPED:
        stopSeekbarUpdate();
        playPauseAction.setIndex(PlayPauseAction.PLAY);
        playbackControlsRow.setCurrentTime(0);
        break;

    case PlaybackStateCompat.STATE_BUFFERING:
        stopSeekbarUpdate();
        break;

    default:
        Log.d(TAG, "Unhandled state: " + state.getState());
    }

    // Custom Actions
    for (PlaybackStateCompat.CustomAction action : state.getCustomActions()) {
        switch (action.getAction()) {
        case MediaService.STATE_SHUFFLE_ON:
            shuffleAction.setIcon(
                    ContextCompat.getDrawable(getActivity(), R.drawable.ic_shuffle_enabled_white_48dp));

            // Update interface if necessary
            if (shuffleMode == null || !shuffleMode.equals(MediaService.STATE_SHUFFLE_ON)) {
                shuffleMode = MediaService.STATE_SHUFFLE_ON;
                updatePlayListRow();
            }

            break;

        case MediaService.STATE_SHUFFLE_OFF:
            shuffleAction.setIcon(ContextCompat.getDrawable(getActivity(), R.drawable.ic_shuffle_white_48dp));

            // Update interface if necessary
            if (shuffleMode == null || !shuffleMode.equals(MediaService.STATE_SHUFFLE_OFF)) {
                shuffleMode = MediaService.STATE_SHUFFLE_OFF;
                updatePlayListRow();
            }

            break;

        case MediaService.STATE_REPEAT_NONE:
            repeatAction.setIcon(ContextCompat.getDrawable(getActivity(), R.drawable.ic_repeat_white_48dp));
            break;

        case MediaService.STATE_REPEAT_ALL:
            repeatAction
                    .setIcon(ContextCompat.getDrawable(getActivity(), R.drawable.ic_repeat_enable_white_48dp));
            break;

        case MediaService.STATE_REPEAT_ONE:
            repeatAction.setIcon(ContextCompat.getDrawable(getActivity(), R.drawable.ic_repeat_one_white_48dp));
            break;
        }
    }

    rowsAdapter.notifyArrayItemRangeChanged(rowsAdapter.indexOf(playbackControlsRow), 1);
}