Repository navigation
PadLab 0.6.0 — la batterie, vraiment
0.6.0 — la batterie, vraiment
Cette version corrige trois choses qui n'auraient pas dû sortir en 0.5.0.
Pourquoi la batterie ne s'affichait pas
Deux défauts se cumulaient dans le module Android :
- La lecture était faite sur le thread principal.
InputDevice.getBatteryState()
est un appel Binder synchrone ; sur une manette Bluetooth le noyau peut mettre
plus de dix secondes à répondre. Résultat : interface figée, ou valeur
abandonnée en route. La lecture se fait maintenant sur un fil dédié, avec un
cache de 20 secondes. - Aucun repli quand Android 12+ ne renseigne rien. Or le niveau est souvent
publié par le noyau (/sys/class/power_supply/*-battery/capacity) même quand
l'API officielle répond « inconnu ». Deux sources sont désormais essayées,
dans cet ordre, et la source utilisée est annoncée.
Et quand aucune des deux ne répond, l'écran affiche la raison exacte et un bouton
Réessayer — plus jamais un tiret muet. Une lecture ratée ne fait pas non plus
disparaître un pourcentage déjà connu.
La manette 3D ne bouge plus toute seule
Elle est immobile au repos. Deux boutons, en haut à droite du cadre :
Tourner / Stop et Recentrer. L'indication « Glissez pour tourner »
s'efface dès que vous touchez le modèle.
Qualité d'exécution
- Réglages entièrement réécrits : plus de titre affiché deux fois, une seule
grammaire de cartes, les informations techniques montrées seulement quand
elles existent. - « TEMPS DE CHARGE » n'apparaît plus hors charge.
- Écran de test : modèle plus grand, compteur « Touches vues n/12 ».
- Glyphes qui s'affichaient en carrés vides remplacés par des libellés lisibles.
Sous le capot
describe()ne lit plus la batterie : chaque scan bloquait le thread principal.- 39 tests dans l'application (+3 sur la batterie, +4 sur la scène immobile),
24 danspad_core, 4 danspad_ui, 4 danspad_bridge, 13 danspclink. - Analyse statique : zéro avertissement sur les cinq paquets.
Limites assumées
- Android 12+ expose
getBatteryState(). En dessous, seul le noyau peut répondre,
et tout le monde n'a pas ces nœuds : dans ce cas, l'application le dit. - Le niveau système Android est celui que la manette veut bien publier : beaucoup
de manettes bon marché ne le font pas du tout.