Skip to content

Commit 179f7a2

Browse files
committed
fix next/previous/paly/pause for A9 firmware
1 parent 107c594 commit 179f7a2

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

‎app/src/main/java/com/mg4/control/hardware/MG4Hardware.kt‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3785,6 +3785,13 @@ object MG4Hardware {
37853785
// • SWI68 / 165 / 69 / 131 / 132 : ce service-ci, celui de la pile de projection allgo,
37863786
// que le launcher appelle lui-même.
37873787
// Aucun firmware n'a les deux, aucun n'en est dépourvu.
3788+
/**
3789+
* Préfixe des paquets de la pile de projection allgo.
3790+
*
3791+
* Sert à RECONNAÎTRE sa session média pour ne surtout pas s'en servir — voir [sessionMedia].
3792+
*/
3793+
private const val PREFIXE_PROJECTION = "com.allgo."
3794+
37883795
private const val RUI_PKG = "com.allgo.rui"
37893796
private const val RUI_CLS = "com.allgo.rui.RemoteUIService"
37903797
private const val DESC_RUI = "com.allgo.rui.IRemoteUIService"
@@ -4291,6 +4298,22 @@ object MG4Hardware {
42914298
return false
42924299
}
42934300

4301+
// ⚠️ LA SESSION DE PROJECTION EST À ÉCARTER, quoi qu'elle déclare.
4302+
//
4303+
// Mesuré sur deux véhicules : elle annonce PAUSE, PLAY et PLAY_PAUSE (actions=0x240286)
4304+
// et n'en honore AUCUN — sur SWI132, lecture et pause restaient sans effet alors que
4305+
// `déclarée=true`. Elle n'annonce pas non plus les changements de piste, qui ne
4306+
// marchaient pas davantage sur SWI131.
4307+
//
4308+
// Autrement dit, ses déclarations ne valent rien. Le service allgo, lui, fonctionne pour
4309+
// les trois commandes : on lui rend la main immédiatement plutôt que de perdre l'appui
4310+
// dans une session qui acquiesce sans agir.
4311+
if (cible.packageName?.startsWith(PREFIXE_PROJECTION) == true) {
4312+
AppLogger.i(MEDIA_TAG, "session ${cible.packageName} = projection — écartée, " +
4313+
"ses déclarations ne sont pas honorées (voie allgo)")
4314+
return false
4315+
}
4316+
42944317
// Une session annonce ce qu'elle sait faire dans `actions`. Ignorer cette déclaration
42954318
// revient à parler dans le vide : `skipToNext()` sur une session qui ne déclare pas
42964319
// ACTION_SKIP_TO_NEXT ne lève rien et ne fait rien — exactement ce qu'a vécu le testeur

0 commit comments

Comments
 (0)