diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java index 91151b5347..153f8c04ca 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java @@ -1646,7 +1646,7 @@ public class StyledPlayerControlView extends FrameLayout { switch (keyCode) { case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_HEADSETHOOK: - controlDispatcher.dispatchSetPlayWhenReady(player, !player.getPlayWhenReady()); + dispatchPlayPause(player); break; case KeyEvent.KEYCODE_MEDIA_PLAY: controlDispatcher.dispatchSetPlayWhenReady(player, true); @@ -1815,14 +1815,7 @@ public class StyledPlayerControlView extends FrameLayout { } else if (rewindButton == view) { controlDispatcher.dispatchRewind(player); } else if (playPauseButton == view) { - if (player.getPlaybackState() == Player.STATE_IDLE) { - if (playbackPreparer != null) { - playbackPreparer.preparePlayback(); - } - } else if (player.getPlaybackState() == Player.STATE_ENDED) { - seekTo(player, player.getCurrentWindowIndex(), C.TIME_UNSET); - } - controlDispatcher.dispatchSetPlayWhenReady(player, !player.getPlayWhenReady()); + dispatchPlayPause(player); } else if (repeatToggleButton == view) { controlDispatcher.dispatchSetRepeatMode( player, RepeatModeUtil.getNextRepeatMode(player.getRepeatMode(), repeatToggleModes)); @@ -1838,6 +1831,20 @@ public class StyledPlayerControlView extends FrameLayout { } } + private void dispatchPlayPause(Player player) { + if (player.getPlaybackState() == Player.STATE_IDLE) { + if (playbackPreparer != null) { + playbackPreparer.preparePlayback(); + } + controlDispatcher.dispatchSetPlayWhenReady(player, true); + } else if (player.getPlaybackState() == Player.STATE_ENDED) { + seekTo(player, player.getCurrentWindowIndex(), C.TIME_UNSET); + controlDispatcher.dispatchSetPlayWhenReady(player, true); + } else { + controlDispatcher.dispatchSetPlayWhenReady(player, !player.getPlayWhenReady()); + } + } + private class SettingsAdapter extends RecyclerView.Adapter { private final String[] mainTexts; private final String[] subTexts;