1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-04-18 04:41:24 +00:00

Implement Ignore hardware media button events option

This commit is contained in:
Nyan Cat
2023-02-04 15:31:08 +08:00
committed by Stypox
parent 2ee4c6e289
commit 42d861688e
4 changed files with 20 additions and 0 deletions

View File

@@ -44,6 +44,15 @@ public class MediaSessionPlayerUi extends PlayerUi {
sessionConnector = new MediaSessionConnector(mediaSession);
sessionConnector.setQueueNavigator(new PlayQueueNavigator(mediaSession, player));
sessionConnector.setPlayer(getForwardingPlayer());
sessionConnector.setMediaButtonEventHandler((p, i) -> {
// It seems like events from the Media Control UI
// in the notification area don't go through this function,
// so it's safe to just ignore all events in case we want to
// ignore the hardware media buttons.
// Returning true stops all further event processing of the system
return player.getPrefs().getBoolean(
context.getString(R.string.ignore_hardware_media_buttons_key), false);
});
sessionConnector.setMetadataDeduplicationEnabled(true);
sessionConnector.setMediaMetadataProvider(exoPlayer -> buildMediaMetadata());
@@ -53,6 +62,7 @@ public class MediaSessionPlayerUi extends PlayerUi {
public void destroyPlayer() {
super.destroyPlayer();
if (sessionConnector != null) {
sessionConnector.setMediaButtonEventHandler(null);
sessionConnector.setPlayer(null);
sessionConnector.setQueueNavigator(null);
sessionConnector = null;