Notifications et widgets de conversation

Android 11 permet de personnaliser le comportement et l'emplacement des notifications de conversation dans la nuance de notification en fonction de la priorité et du niveau d'alerte. Les conversations peuvent ainsi être marquées comme importantes et des bulles spécifiques aux conversations peuvent être lancées dans l'espace de conversation.

En s'appuyant sur ces fonctionnalités d'Android 11, Android 12 propose deux nouvelles fonctionnalités de conversation :

  • La fonctionnalité "Conversations récentes" dans les paramètres permet aux utilisateurs de personnaliser le comportement des notifications pour les conversations récentes sans attendre de recevoir une notification.

  • La fonctionnalité Widget de conversation permet aux utilisateurs d'ouvrir facilement des discussions sur l'écran d'accueil et d'afficher rapidement les conversations récentes.

Ce document décrit les aspects liés à l'implémentation, à la personnalisation et à la validation des notifications et des widgets de conversation.

Présentation des notifications de conversation

Android 11 introduit une nouvelle primitive système, la conversation, qui est représentée par l'objet de raccourci de partage existant (déployé avec Android 9).

La primitive Conversations peut être utilisée comme suit :

  • Pour partager des données de conversations entre les applications du système via la feuille de partage (déjà disponible dans Android 10).

  • Pour les bulles de conduite(raccourcis dans Android 11). Voir la figure 1.

  • Pour participer au nouvel espace de conversation en haut de l'ombre de la barre de notification (implémenté dans Android 11). Voir Figure 2.

  • Pour créer des widgets de conversation (implémentés dans Android 12).

    conv_bubbles

    Figure 1 : Notification lancée sous forme de bulle depuis le panneau des notifications

    conv_notification

    Figure 2 : Espace de conversation situé en haut du volet des notifications

En plus de créer un lien vers le raccourci représentant la conversation, la notification utilise également MessagingStyle pour inclure le dernier message de la conversation dans l'espace Conversation.

Les partenaires GMS doivent implémenter les éléments suivants :

  • Un nouvel espace "Conversations" en tant que section distincte en haut de l'ombre des notifications.
  • Style de notification qui autorise et prend en charge le modèle de bulle spécifique à la conversation.

Les partenaires qui implémentent les conversations doivent également implémenter les conversations importantes. Toutefois, l'implémentation des conversations peut être alignée sur les concepts OEM de même nature. En général, les partenaires sont libres d'aligner la section de conversation sur leur UI système spécifique. Le partenaire n'a pas besoin de modifier ni d'implémenter le code/les extensions HAL/pilote/noyau.

Consultez l'implémentation de référence suivante dans les sections SystemUI et PeopleService d'AOSP :

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Validation

Pour vous assurer que votre version de la fonctionnalité fonctionne comme prévu, vérifiez les points suivants :

  1. Les applications qui prennent entièrement en charge l'API Conversation voient leurs notifications dans la nouvelle section et peuvent les personnaliser par conversation plutôt que par NotificationChannel générique.

  2. Les bulles spécifiques aux conversations fonctionnent.

Pour valider l'implémentation, utilisez les tests suivants dans le package de notification :

  • Tests CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Tests CTS Verifier.

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

Présentation des widgets de conversation

Dans Android 12, la fonctionnalité Widget Conversation s'appuie sur les représentations de conversations créées dans Android 11 (comme décrit dans la section précédente) en permettant aux applications de fournir l'état des conversations affichées dans les widgets Conversation.

conv_widgets

Figure 3 : Conversations affichées dans les widgets de conversation

La fonctionnalité Widget de conversation d'Android 12 favorise la connexion en permettant aux utilisateurs d'ouvrir facilement des discussions sur l'écran d'accueil. Les widgets sont des raccourcis améliorés qui permettent aux utilisateurs de revenir efficacement à leurs conversations tout en affichant des extraits de l'état des conversations.

Le partenaire doit implémenter les éléments suivants :

  1. Widget fourni par SystemUI.
  2. Un flux permettant d'ajouter ces widgets depuis l'écran de sélection des widgets.
  3. Compatibilité avec le redimensionnement des widgets :

Tenez compte des dépendances suivantes lorsque vous implémentez des widgets de conversation :

  • Le partenaire n'a pas besoin de modifier ni d'implémenter le code HAL/pilote/noyau.
  • L'API Status, qui permet aux applications d'ajouter des informations sur l'état ou la disponibilité à une conversation et au widget associé, est utilisée pour l'implémentation.
  • Le processus est le même pour les nouvelles implémentations d'appareils et les implémentations de mise à niveau.
  • La fonctionnalité Widgets de conversation dépend d'une nouvelle fonctionnalité lancée dans Android 12, qui met en cache les conversations récemment vues (à partir des notifications, par exemple). Cette dernière fonctionnalité permet d'étendre la liste des conversations qu'un utilisateur peut potentiellement ajouter à son écran d'accueil.

Consultez l'implémentation de référence suivante dans les fichiers SystemUI et Launcher3 :

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Personnalisation

Il n'est pas possible d'activer ni de désactiver la fonctionnalité Widgets de conversation. Toutefois, un partenaire peut modifier la mise en page des modèles de widgets, à condition que les exigences GMS soient respectées.

Validation

Pour vous assurer que votre version de la fonctionnalité fonctionne comme prévu, vérifiez les points suivants :

  1. En appuyant de manière prolongée sur le lanceur d'applications, un nouveau widget de conversation peut être ajouté à une conversation via le sélecteur de widgets. Consultez la figure 4 pour découvrir l'UI du sélecteur de widgets :

    widget_picker

    Figure 4 : UI du sélecteur de widgets pour ajouter un widget Conversation

  2. Lorsque des notifications sont envoyées à l'appareil à partir de la conversation sélectionnée, le widget est mis à jour pour refléter ces notifications.

  3. Lorsque vous appliquez des états à cette conversation à l'aide de l'API ConversationStatus, le widget reflète ces états.

  4. Les utilisateurs peuvent redimensionner les widgets, et ceux-ci peuvent changer de taille en fonction du lanceur d'applications actuel. Vos mises en page de widgets doivent fonctionner correctement avec différentes tailles de lanceur d'applications sur différents appareils et lors du redimensionnement du widget.

Pour valider l'implémentation, utilisez les tests suivants dans le package de notification :

  • Les tests CTS (PeopleManagerTest) pour les surfaces de l'API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Tests manuels pour l'exigence GMS : conversations.