Notifications et widgets de conversation

Android 11 permet de personnaliser le comportement et l'emplacement des notifications de conversation dans la nuance de notifications en fonction de la priorité et du niveau d'alerte. Vous pouvez ainsi marquer les conversations comme importantes et lancer des bulles spécifiques à la conversation dans l'espace de conversation.

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 notification.

  • La fonctionnalité de widget de conversation permet aux utilisateurs d'ouvrir facilement des chats sur l'écran d'accueil, ce qui leur permet de consulter rapidement les conversations récentes.

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

Présentation des notifications de conversation

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

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

  • Partager les données Conversations entre les applications du système via Sharesheet (déjà disponible dans Android 10)

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

  • Pour participer au nouvel espace de conversation au-dessus de la barre des notifications (implémenté dans Android 11). Voir la figure 2.

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

    conv_bubbles

    Figure 1:Lancement d'une notification sous forme de bulle depuis le panneau des notifications

    conv_notification

    Figure 2:Espace de conversation situé au-dessus 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 de conversation.

Les partenaires GMS doivent mettre en œuvre les éléments suivants:

  • Un nouvel espace "Conversations" en tant que section distincte au-dessus de la barre de notification.
  • Style de notification qui permet et prend en charge le modèle de bulle spécifique à la conversation.

Les partenaires qui implémentent Conversations doivent également implémenter les conversations importantes. Toutefois, l'implémentation de Conversations peut être alignée sur des concepts OEM de nature similaire. Dans l'ensemble, les partenaires sont libres d'aligner la section de conversation sur l'interface utilisateur 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 sont entièrement compatibles avec 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 de l'outil de contrôle CTS.

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

Présentation des widgets de conversation

Dans Android 12, la fonctionnalité de widget de conversation s'appuie sur les représentations de conversation 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 de conversation.

conv_widgets

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

La fonctionnalité de widget de conversation d'Android 12 favorise la connexion en permettant aux utilisateurs d'ouvrir facilement des chats 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 leur état.

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

  1. Widget fourni par SystemUI.
  2. Flux permettant d'ajouter ces widgets depuis l'écran de sélection des widgets.
  3. Prise en charge du redimensionnement des widgets comme suit :

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 d'état ou de disponibilité à une conversation et au widget associé, est utilisée pour l'implémentation.
  • Le processus est le même pour les implémentations de nouveaux appareils et les implémentations de mises à 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 consultées (à partir de 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

La fonctionnalité des widgets de conversation ne peut pas être activée ni désactivée. Toutefois, un partenaire peut modifier les mises 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, vous pouvez ajouter un nouveau widget de conversation pour une conversation via le sélecteur de widgets. Consultez la figure 4 pour voir l'UI du sélecteur de widgets:

    widget_picker

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

  2. Lorsque vous envoyez des notifications à 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 les reflète.

  4. Les utilisateurs peuvent redimensionner les widgets, et les widgets peuvent modifier leur taille en fonction du lanceur actuel. Les mises en page de vos widgets doivent fonctionner correctement avec différentes tailles de lanceur 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 l'API sont affichés.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Tests manuels pour les exigences GMS : Conversations