Implémenter des panneaux de notifications prioritaires

Dans Android 17 et versions ultérieures, l'UI évolutive pour les notifications heads-up (HUN) vous permet de personnaliser la gestion des fenêtres (positionnement, arrière-plan, animations) des panneaux HUN à l'aide du framework d'UI évolutive avec des superpositions de ressources d'exécution (RRO). Cette fonctionnalité permet de contrôler le conteneur de la notification sans affecter le rendu du contenu interne.

Implémentation

L'implémentation de l'UI évolutive pour les HUN implique les éléments suivants :

  • API publiques et système : introduit la classe HunWindow et <HunPanel> la logique d’analyse des balises XML dans les analyseurs d’UI évolutive.
  • Implémentation partenaire :
    • Définissez une superposition RRO personnalisée.
    • Pour créer un fichier XML (par exemple, res/xml/hun_panel.xml), utilisez la <HunPanel> balise racine.
    • Définissez des éléments <Variant> pour contrôler les limites, la gravité (TOP ou BOTTOM), la visibilité et l'arrière-plan (drawable de l'arrière-plan).
    • Mappez les variantes aux événements système (par exemple, _System_Show_Panel) à l'aide de <Transitions>.
  • Appareils neufs ou mis à niveau : il s'agit d'une modification de configuration effectuée par les RRO. Pour mettre à niveau les appareils afin qu'ils reçoivent la nouvelle image système, créez un RRO approprié pour définir le comportement des HUN. Cela permet aux utilisateurs de s'écarter de la valeur par défaut.
  • Activer ou désactiver : pour activer ou désactiver cette fonctionnalité, ajoutez ou supprimez @xml/hun_panel de la configuration window_states.
  • Paramètres par défaut : modifiez les paramètres par défaut en appliquant votre propre RRO qui remplace la configuration par défaut du système.

Exigences et validation

Utilisez la séquence suivante pour tester l'activation et la désactivation des superpositions :

adb shell cmd overlay disable --user current com.example.overlay.scalableUI.hun.bottom

Si vous activez ou désactivez le RRO, le HUN s'affiche respectivement en bas ou en haut.

Validation manuelle

  • Positionnement : vérifiez que les HUN s'affichent à la gravité (TOP ou BOTTOM) et aux limites spécifiées.
  • Interactions : vérifiez que le balayage pour ignorer fonctionne (si ce n'est pas le cas, vérifiez que le bouton fonctionne).
  • Animations : vérifiez les animations de transition entre les états ouvert et fermé.