diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java index 20a0f3766..97f2d6717 100644 --- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java +++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java @@ -159,6 +159,11 @@ public final class PlayerHolder { private boolean playAfterConnect = false; + /** + * @param playAfterConnection Sets the value of `playAfterConnect` to pass to the {@link + * PlayerServiceExtendedEventListener#onPlayerConnected(Player, boolean)} the next time it + * is called. The value of `playAfterConnect` will be reset to false after that. + */ public void doPlayAfterConnect(final boolean playAfterConnection) { this.playAfterConnect = playAfterConnection; } @@ -183,7 +188,6 @@ public final class PlayerHolder { playerService = localBinder.getService(); if (listener != null) { listener.onServiceConnected(playerService); - getPlayer().ifPresent(p -> listener.onPlayerConnected(p, playAfterConnect)); } startPlayerListener(); // ^ will call listener.onPlayerConnected() down the line if there is an active player @@ -357,6 +361,8 @@ public final class PlayerHolder { listener.onPlayerDisconnected(); } else { listener.onPlayerConnected(player, serviceConnection.playAfterConnect); + // reset the value of playAfterConnect: if it was true before, it is now "consumed" + serviceConnection.playAfterConnect = false; player.setFragmentListener(internalListener); } }