Une nouvelle mise à jour de Sola aujourd'hui. Deux corrections : un crash rare mais bloquant au démarrage sur Samsung Galaxy A06 (et autres appareils Android d'entrée de gamme à petit écran), et un défaut d'affichage du sous-menu de positionnement des widgets qui pouvait apparaître coupé en bas d'écran.

1.0.10 — crash au démarrage sur Samsung Galaxy A06

Le symptôme

Un utilisateur sur Samsung Galaxy A06 (Android 16) a rencontré un crash au démarrage de Sola : l'application se fermait immédiatement à l'ouverture, sans même laisser le temps d'atteindre l'écran d'accueil. Le rapport de plantage a été remonté via Google Play Console avec la trace complète, ce qui a permis d'identifier la cause précisément.

La cause

Le Samsung Galaxy A06 est un appareil d'entrée de gamme avec un écran 720×1600 et une densité d'affichage inhabituelle (260 dpi). Ces spécifications sont différentes de celles des appareils Pixel sur lesquels Sola a été principalement testé.

Dans certaines configurations, le widget « En un coup d'œil » (au-dessus de l'écran d'accueil, qui affiche l'heure, la météo et le prochain événement) pouvait mesurer sa propre hauteur à zéro sur un frame transitoire. Cette valeur zéro était ensuite mémorisée puis propagée à la grille d'icônes en dessous, dont la hauteur de cellule devenait elle aussi zéro. Le composant LazyVerticalGrid de Jetpack Compose refuse alors la mesure et lève une exception qui fait planter l'application.

Le correctif

Deux gardes défensives ont été ajoutées :

Correctif validé sur un émulateur reproduisant les spécifications exactes du Galaxy A06 (720×1600, 260 dpi, Android 16), ainsi que sur Pixel 4a (Android 10), Pixel Tablet (Android 14) et Pixel 8 Pro (Android 16). Aucun plantage, aucune régression visible.

Sous-menu de positionnement de widget coupé en bas d'écran

Le symptôme

Lorsqu'un widget était placé près du bord inférieur de l'écran, appuyer longuement dessus faisait apparaître le menu contextuel (« Configurer », « Positionner », « Supprimer ») en se décalant automatiquement pour rester entièrement visible. Bon comportement. Mais si l'utilisateur tapait ensuite sur « Positionner » pour ouvrir le sous-menu de positionnement fin, celui-là ne se repositionnait pas : il apparaissait au-dessous du widget quoi qu'il arrive, et se retrouvait donc coupé en bas d'écran.

Le correctif

La même logique de repositionnement automatique que celle du menu parent est désormais appliquée au sous-menu de positionnement. Il s'affiche au-dessous du widget si la place le permet, sinon au-dessus, sinon il se cale contre le bord bas de l'écran. La largeur du panneau est également centrée sur le widget avec un clamp pour éviter tout débordement latéral.

Résultat : le sous-menu est toujours entièrement visible, quel que soit l'emplacement du widget sur la grille.

Comment obtenir la mise à jour

La mise à jour est déployée progressivement via le Play Store (démarrage à 20 % des utilisateurs, puis montée graduelle vers 100 % sur 24 à 48 heures). Elle devrait être disponible pour tout le monde dans les 2 jours. Il est aussi possible de forcer la vérification depuis l'application Play Store, section « Gérer les apps et l'appareil ».

Ouvrir sur Google Play