@@ -64,7 +64,8 @@ class MG4ControlService : Service() {
6464 ShortcutAction .DEFROST_FRONT_TOGGLE , ShortcutAction .DEFROST_REAR_TOGGLE ,
6565 ShortcutAction .HVAC_RECIRC_CYCLE ,
6666 ShortcutAction .BRIGHTNESS_UP , ShortcutAction .BRIGHTNESS_DOWN ,
67- ShortcutAction .MEDIA_NEXT , ShortcutAction .MEDIA_PREVIOUS
67+ ShortcutAction .MEDIA_NEXT , ShortcutAction .MEDIA_PREVIOUS ,
68+ ShortcutAction .MEDIA_PLAY_PAUSE
6869 )
6970
7071
@@ -533,14 +534,19 @@ class MG4ControlService : Service() {
533534 MG4Hardware .setDrowsinessSensitivity(suivant)
534535 }
535536
536- ShortcutAction .MEDIA_NEXT , ShortcutAction .MEDIA_PREVIOUS -> {
537+ ShortcutAction .MEDIA_NEXT , ShortcutAction .MEDIA_PREVIOUS ,
538+ ShortcutAction .MEDIA_PLAY_PAUSE -> {
537539 // Aucune lecture préalable : contrairement aux autres actions de ce bloc, il n'y
538- // a pas d'« état de piste » à connaître. On envoie la commande, c'est la source
539- // qui décide — d'où le passage par ce chemin plutôt que par les bascules à état
540- // mémorisé, qui alterneraient une fois sur deux.
541- val suivant = action == ShortcutAction .MEDIA_NEXT
542- AppLogger .i(TAG , " SHORTCUT piste ${if (suivant) " suivante" else " précédente" } " )
543- if (suivant) MG4Hardware .mediaNext() else MG4Hardware .mediaPrevious()
540+ // a rien à connaître avant d'agir. Même la pause n'en demande pas — la touche
541+ // PLAY_PAUSE est une bascule que la source résout elle-même. D'où le passage par
542+ // ce chemin plutôt que par les bascules à état mémorisé, qui se désynchroniseraient
543+ // dès que l'utilisateur toucherait à la lecture depuis l'écran d'origine.
544+ AppLogger .i(TAG , " SHORTCUT média : ${action.name} " )
545+ when (action) {
546+ ShortcutAction .MEDIA_NEXT -> MG4Hardware .mediaNext()
547+ ShortcutAction .MEDIA_PREVIOUS -> MG4Hardware .mediaPrevious()
548+ else -> MG4Hardware .mediaPlayPause()
549+ }
544550 }
545551
546552 ShortcutAction .REGEN_CYCLE -> {
0 commit comments